base64

一切能放路径的地方,都可以使用base64

const r = Buffer.from("哈"); // e5 93 88
r.toString('base64'); // 5ZOI   

// 将每个字节转为二进制
(0xe5).toString(2); // 11100101
(0x93).toString(2); // 10010011
(0x88).toString(2); // 10001000

// 将二进制按顺序链接在一起
111001011001001110001000
// 6个一组分为四组
111001 011001 001110 001000
// 在每一组的前面用0补位,凑齐8位
00111001
00011001
00001110
00001000

// 二进制转为十进制
parseInt('00111001', 2); // 二进制变为10进制 57
parseInt('00011001', 2); // 二进制变为10进制 25
parseInt('00001110', 2); // 二进制变为10进制 14
parseInt('00001000', 2); // 二进制变为10进制 8


// base64编码
let str = 'ABCDEFGHIGKLMNOPQRSTUVWSYZ';
str += str.toLowerCase(); // 小写字符拼接一次
str += '0123456789+/'; // 数字拼接一次
const base64 = str[57] + str[25] + str[14] + str[8]; // 5ZOI

base64转译步骤
1、获取buffer,并将每个16的buffer字节转为2进制
2、将所有二进制拼接在一起,6个一组进行划分,在前面补00,凑成8位二进制
3、将新的二进制转换成10进制
4、在base64集合中分别通过10进制下标取出,并链接