Base64 是一种常见的编码格式,用于将二进制数据转换为文本字符串,以便在网络上传输或存储。Base64 编码并不是加密,而是一种编码方式,因为它可以被轻松地解码回原始数据。
Base64 编码使用 64 个字符来表示二进制数据。这些字符包括大写字母 A-Z、小写字母 a-z、数字 0-9 以及符号 '+' 和 '/'。Base64 编码后的字符串长度通常会比原始数据长约 33%。编码过程中,每 3 个字节的数据会被转换为 4 个字符的 Base64 字符串。
Base64 编码有几种变体:
以下是 JavaScript 中使用 Base64 编码和解码的示例代码:
// 编码
let originalText = "Hello, World!";
let encodedText = btoa(originalText);
console.log("Encoded:", encodedText); // 输出: "SGVsbG8sIFdvcmxkIQ=="
// 解码
let decodedText = atob(encodedText);
console.log("Decoded:", decodedText); // 输出: "Hello, World!"
// URL 安全的 Base64 编码和解码
function urlSafeBase64Encode(str) {
return btoa(str).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
}
function urlSafeBase64Decode(str) {
str = (str + '==='.slice((str.length + 3) % 4)).replace(/-/g, '+').replace(/_/g, '/');
return atob(str);
}
let urlSafeEncoded = urlSafeBase64Encode(originalText);
console.log("URL Safe Encoded:", urlSafeEncoded); // 输出: "SGVsbG8sIFdvcmxkIQ"
let urlSafeDecoded = urlSafeBase64Decode(urlSafeEncoded);
console.log("URL Safe Decoded:", urlSafeDecoded); // 输出: "Hello, World!"
atob
函数会抛出错误。通过以上方法,可以有效地处理 Base64 编码和解码过程中可能遇到的问题。
领取专属 10元无门槛券
手把手带您无忧上云