base64的js实现
时间: 2023-09-07 10:16:12 浏览: 40
以下是一个使用 JavaScript 实现 Base64 编码和解码的示例代码:
```javascript
// Base64 编码函数
function base64Encode(str) {
let base64Table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
let result = '';
let i = 0;
while (i < str.length) {
let chr1 = str.charCodeAt(i++);
let chr2 = str.charCodeAt(i++);
let chr3 = str.charCodeAt(i++);
let enc1 = chr1 >> 2;
let enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
let enc3, enc4;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else {
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = isNaN(chr3) ? 64 : chr3 & 63;
}
result += base64Table.charAt(enc1) + base64Table.charAt(enc2) + base64Table.charAt(enc3) + base64Table.charAt(enc4);
}
return result;
}
// Base64 解码函数
function base64Decode(str) {
let base64Table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
let result = '';
let i = 0;
while (i < str.length) {
let enc1 = base64Table.indexOf(str.charAt(i++));
let enc2 = base64Table.indexOf(str.charAt(i++));
let enc3 = base64Table.indexOf(str.charAt(i++));
let enc4 = base64Table.indexOf(str.charAt(i++));
let chr1 = (enc1 << 2) | (enc2 >> 4);
let chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
let chr3 = ((enc3 & 3) << 6) | enc4;
result += String.fromCharCode(chr1);
if (enc3 !== 64) {
result += String.fromCharCode(chr2);
}
if (enc4 !== 64) {
result += String.fromCharCode(chr3);
}
}
return result;
}
// 示例用法
let originalString = 'Hello, World!';
let encodedString = base64Encode(originalString);
let decodedString = base64Decode(encodedString);
console.log('Original String:', originalString);
console.log('Encoded String:', encodedString);
console.log('Decoded String:', decodedString);
```
此示例代码定义了两个函数:`base64Encode` 用于对字符串进行 Base64 编码,`base64Decode` 用于对 Base64 编码的字符串进行解码。你可以通过调用这两个函数来进行编码和解码操作。在示例中,我使用了字符串 `'Hello, World!'` 进行了编码和解码的演示,你可以替换它来测试其他字符串。