gpt4 book ai didi

c# - Base64编码的字符串可以以3个等号结尾吗?

转载 作者:行者123 更新时间:2023-11-30 15:19:27 24 4
gpt4 key购买 nike

This post建议(参见 Anirudh Ramanathan 的回答)Base64 编码的字符串最多可以包含 3 个相同的字符。在网络的其他地方,我看到它可以是一个或两个等号。从理论上讲,由于我们必须使长度成为 4 的倍数,因此 Anirudh 的答案似乎是正确的。这些信息中哪一条是错误的?

我尝试使用蛮力寻找一个 Base64 以 3 个等号结尾的字符串,但没有成功找到任何长度不超过 10,000 个字符的字符串。

还是我错过了这里显而易见的东西?

最佳答案

下表显示了三个输入字节如何映射到四个 Base64 字符。

        1       2       3                
8-bit: 111111112222222233333333
Base64: 111111222222333333444444
1 2 3 4

这个模 3 输入是最佳编码方案:没有比特浪费,也不需要填充:输出字符串是四个字符。

现在,当您只想对两个输入字节进行编码时,您需要三个输出字符。这意味着输出会用一个填充字符填充,直到总共四个字符。

然后最小的非空输入,即一个 8 位字节,被编码成两个 Base64 字符。现在需要两个填充字符来将输出字符串填充为四个字符。

没有一个输出是一个字符的输入,因此您永远不必使用三个填充字符 - 只要您对整个 8 位字节进行编码。

关于c# - Base64编码的字符串可以以3个等号结尾吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42052364/

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