Base64 编码
Base64 编码是一种通过字符转换来隐藏原始文本的方法。它将原文编码成肉眼难以识别的字符序列,常用于HTTP环境中传递长标识信息而不会干扰HTTP请求格式。其编码原理在于将每三个8位二进制数转换为四个6位二进制数,若不足则高位补零。下面是 Base64 标准中的编码表。
通俗来讲,Base64 做的就是将所有的二进制数据 6 位为一组计算出一个十进制数据,并按编码表进行转化的一个算法。因为6位二进制数据最多可以表示(2^n^) 0~63 共64个,因此我们的编码表共有64个字符。依此类推,对应的可以有 Base32,Base128等。
编码过程
我们以字符串 “ABC” 为例,
-
这三个字母的 ASCII 值对应的二进制表示为: 字符A: 01000001(65) 字符B: 01000010(66) 字符C: 01000011(67)
-
字符串 “ABC” 对应的二进制表示:01000001 01000010 01000011
-
将这一串二进制每 6 位重新划分(不足末位补0,每次补0需要补八个0):010000 010100 001001 000011
-
计算每 6 位的十进制值:16 20 9 3
-
查找 Base64 编码表,找到对应的字符(末位补位用=来表示):Q U J D
最后字符串 “ABC” 经过 Base64 编码后变成:“QUJD”
解码过程
Base64 解码是编码的反向过程,解码后即可得到原文~