Hem*_*ant 5 optimization base64 encoding
引用维基百科:
...这些填充字符必须在解码时被丢弃,但仍允许计算未编码文本的有效长度,此时其输入二进制长度不是3个字节的倍数....
但即使剥离填充字符,也可以轻松地计算长度原始数据.
| Encoded
|--------------------------------------
Raw Size | Total Size | Real Size | Padding Size
1 | 4 | 2 | 2
2 | 4 | 3 | 1
3 | 4 | 4 | 0
4 | 8 | 6 | 2
5 | 8 | 7 | 1
6 | 8 | 8 | 0
7 | 12 | 10 | 2
8 | 12 | 11 | 1
9 | 12 | 12 | 0
10 | 16 | 14 | 2
.
.
.
Run Code Online (Sandbox Code Playgroud)
因此,考虑到实际编码大小(第三列),您始终可以正确猜出填充大小:
PaddedSize = 4 * Ceil (RealSize / 4)
Run Code Online (Sandbox Code Playgroud)
所以从理论上讲,不需要填充.算法会处理它.考虑到Base64编码是一种流行的行业标准,它被用于许多应用程序和设备中.这些将受益于减少的编码大小.所以问题是,为什么在Base64编码中使用填充?
它使编码的消息成为 4 个字符的整数倍。这可能会使编写解码器稍微容易一些。您可以以 4 个块为单位加载和处理字符并将它们转换为 3 个输出字符,并且填充可以轻松完成此操作而不会超出字符串的末尾。