gpt4 book ai didi

optimization - 为什么在 Base64 编码中使用填充?

转载 作者:行者123 更新时间:2023-12-03 16:00:45 30 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




10年前关闭。




Possible Duplicate:
Why does base64 encoding requires padding if the input length is not divisible by 3?



报价 Wikipedia :

...these padding characters must then be discarded when decoding but still allow the calculation of the effective length of the unencoded text, when its input binary length would not be a multiple of 3 bytes. ...



但是即使去掉填充字符,长度原始数据的计算也很容易完成。
          |               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
.
.
.

因此,鉴于实际编码大小(第三列),您始终可以正确猜测填充大小是多少:
PaddedSize = 4 * Ceil (RealSize / 4)

所以理论上,不需要填充。算法会处理它。考虑到 Base64 编码是一种流行的行业标准,它被用于许多应用程序和设备中。这些将受益于减少的编码大小。那么问题来了,为什么在Base64编码中使用padding呢?

最佳答案

它使编码的消息成为 4 个字符的整数倍。这可能会使编写解码器稍微容易一些。您可以以 4 个块为单位加载和处理字符并将它们转换为 3 个输出字符,并且填充可以轻松完成此操作,而不会超出字符串的末尾。

关于optimization - 为什么在 Base64 编码中使用填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4322507/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com