Appearance
Base64 转换工具
知识点
Base64 编码原理
Base64 利用 64 个字符(A-Za-z0-9+/)编码文本,原理是将字符串以每 3 个 8 比特(bit)的子序列拆分成 4 个 6 比特(bit)的子序列,再将得到的子序列查找 Base64 编码索引表,得到对应的字符拼接成新的字符串的一种编码方式
a的二进制为0110 0001b的二进制为0110 00102的二进制为0011 0010
Base64 编码索引表
Y的二进制为0110 00W的二进制为0101 10I的二进制为0010 00y的二进制为1100 10
划分前 0110 0001、0110 0010、0011 0010,即 a、b、2
划分后 0110 00、0101 10、0010 00、1100 10,按照 Base64 编码表 Y、W、I、y
所以 ab2 的 Base64 编码为 YWIy
为什么 Base64 编码后的大小是原来的 4/3 倍?
因为一个字节需要 8 个比特存储,所以我们要把 6 个比特往前面补两位 0,补足 8 个比特。如下所示
补足前 0110 00、0101 10、0010 00、1100 10
补足后 000110 00、000101 10、000010 00、001100 10
很明显,补足后所需的比特为 32 个,是原来所需的 24 个的 4/3 倍,所以 Base64 编码后的大小是原来的 4/3 倍
Base64url 与 Base64 的区别
标准 Base64 字符串的 +、/ 在 url 里会被编码成 %2B, %2F,这样会让 url 更长,所以出现了一种变种 base64url,采用 64 个字符(A-Za-z0-9-_)编码文本
