Base64是一种基于64个可打印字符来表示二进制数据的表示方法。它常用于在需要处理文本数据的场合,表示、传输、存储一些二进制数据。
Base64 的主要特点:
常见应用场景:
Base64编码不是加密,它只是一种编码方式,可以轻松地被解码。因此,它不应该被用于保护敏感信息。
// 编码
const encoded = btoa('Hello World');
console.log(encoded); // SGVsbG8gV29ybGQ=
// 解码
const decoded = atob('SGVsbG8gV29ybGQ=');
console.log(decoded); // Hello World
// 处理中文
const encodedChinese = btoa(unescape(encodeURIComponent('你好')));
const decodedChinese = decodeURIComponent(escape(atob(encodedChinese)));
import base64
# 编码
text = "Hello World"
encoded = base64.b64encode(text.encode('utf-8')).decode('utf-8')
print(encoded) # SGVsbG8gV29ybGQ=
# 解码
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded) # Hello World
# 文件编码
with open('file.txt', 'rb') as file:
file_encoded = base64.b64encode(file.read()).decode('utf-8')
import java.util.Base64;
// 编码
String text = "Hello World";
String encoded = Base64.getEncoder().encodeToString(text.getBytes());
System.out.println(encoded); // SGVsbG8gV29ybGQ=
// 解码
byte[] decodedBytes = Base64.getDecoder().decode(encoded);
String decoded = new String(decodedBytes);
System.out.println(decoded); // Hello World
// URL安全的编码解码
String urlEncoded = Base64.getUrlEncoder().encodeToString(text.getBytes());
String urlDecoded = new String(Base64.getUrlDecoder().decode(urlEncoded));
using System;
using System.Text;
// 编码
string text = "Hello World";
byte[] bytes = Encoding.UTF8.GetBytes(text);
string encoded = Convert.ToBase64String(bytes);
Console.WriteLine(encoded); // SGVsbG8gV29ybGQ=
// 解码
byte[] decodedBytes = Convert.FromBase64String(encoded);
string decoded = Encoding.UTF8.GetString(decodedBytes);
Console.WriteLine(decoded); // Hello World
// 处理URL安全的Base64
string urlSafe = encoded.Replace('+', '-').Replace('/', '_').Replace("=", "");
package main
import (
"encoding/base64"
"fmt"
)
func main() {
// 编码
text := "Hello World"
encoded := base64.StdEncoding.EncodeToString([]byte(text))
fmt.Println(encoded) // SGVsbG8gV29ybGQ=
// 解码
decoded, err := base64.StdEncoding.DecodeString(encoded)
if err != nil {
panic(err)
}
fmt.Println(string(decoded)) // Hello World
// URL编码
urlEncoded := base64.URLEncoding.EncodeToString([]byte(text))
}
// 编码
$text = "Hello World";
$encoded = base64_encode($text);
echo $encoded; // SGVsbG8gV29ybGQ=
// 解码
$decoded = base64_decode($encoded);
echo $decoded; // Hello World
// URL安全的Base64
$urlSafe = strtr($encoded, '+/', '-_');
$urlSafe = rtrim($urlSafe, '=');