07-js加解密
编解码
base64编解码
在 JavaScript 中,btoa 和 atob 是两个用于 Base64 编码和解码的函数。下面是对这两个函数以及 Base64 的解释和代码示例:
- btoa 函数:btoa(表示 base64 encode)将字符串转换为 Base64 编码的数据。它接受一个 ASCII 字符串参数,并返回经过 Base64 编码的字符串。
- b 表示 "binary",它指示函数处理二进制数据的能力。
- toa 是 "to ASCII" 的缩写,表明函数将数据从一种格式转换为 ASCII 字符串。
javascript
const originalString = 'Hello, World!';
const encodedString = btoa(originalString);
console.log(encodedString); // 输出:SGVsbG8sIFdvcmxkIQ==
btoa处理中文会报错,解决方案是先编译:
javascript
var str = '?title=标题&url=https://www.baidu.com'
var strA = window.btoa(encodeURIComponent(str))
var strB = decodeURIComponent(window.atob(strA))
console.log(strA) // 'JTNGdGl0bGUlM0QlRTYlQTAlODclRTklQTIlOTglMjZ1cmwlM0RodHRwcyUzQSUyRiUyRnd3dy5iYWlkdS5jb20='
console.log(strB) // '?title=标题&url=https://www.baidu.com'
注意: base64 转换时去除 "data:image/png;base64,", 只要后面的文件流, 否则 atob 报错
atob 函数:atob(表示 base64 decode)将已经进行 Base64 编码的数据解码为原始字符串。它接受一个 Base64 编码的字符串参数,并返回解码后的 ASCII 字符串。
javascript
const encodedString = 'SGVsbG8sIFdvcmxkIQ==';
const originalString = atob(encodedString);
console.log(originalString); // 输出:Hello, World!