通俗理解 Base64 编码解码过程

146 阅读2分钟

Base64 编码

Base64 编码是一种通过字符转换来隐藏原始文本的方法。它将原文编码成肉眼难以识别的字符序列,常用于HTTP环境中传递长标识信息而不会干扰HTTP请求格式。其编码原理在于将每三个8位二进制数转换为四个6位二进制数,若不足则高位补零。下面是 Base64 标准中的编码表。

base64-alphabet-6550303.png

通俗来讲,Base64 做的就是将所有的二进制数据 6 位为一组计算出一个十进制数据,并按编码表进行转化的一个算法。因为6位二进制数据最多可以表示(2^n^) 0~63 共64个,因此我们的编码表共有64个字符。依此类推,对应的可以有 Base32,Base128等。

编码过程

我们以字符串 “ABC” 为例,

  1. 这三个字母的 ASCII 值对应的二进制表示为: 字符A: 01000001(65) 字符B: 01000010(66) 字符C: 01000011(67)

  2. 字符串 “ABC” 对应的二进制表示:01000001 01000010 01000011

  3. 将这一串二进制每 6 位重新划分(不足末位补0,每次补0需要补八个0):010000 010100 001001 000011

  4. 计算每 6 位的十进制值:16 20 9 3

  5. 查找 Base64 编码表,找到对应的字符(末位补位用=来表示):Q U J D

最后字符串 “ABC” 经过 Base64 编码后变成:“QUJD”

解码过程

Base64 解码是编码的反向过程,解码后即可得到原文~