我知道什么是base64编码,以及如何在c#中计算base64编码,但是我已经看到过几次,当我将一个字符串转换为base64时,在结尾有一个=。

他提出了几个问题:

base64字符串总是以=结尾吗? 为什么an =要加在后面?


当前回答

=是填充字符。如果输入流的长度不是3的倍数,则填充字符将被添加。这是解码器所要求的:如果没有填充,最后一个字节将有一个不正确的零位数。

更好更深入的解释在这里:https://base64tool.com/detect-whether-provided-string-is-base64-or-not/

其他回答

它起到填充的作用。

一个更完整的答案是,base64编码的字符串并不总是以一个=结尾,如果需要将字符串填充到适当的长度,它只会以一个或两个=结尾。

从维基百科:

最后的'=='序列表示最后一组只包含一个字节,'='表示它包含两个字节。

因此,这是某种填充。

等号(=)在某些形式的base64编码中用作填充。关于base64的维基百科文章有所有的细节。

不。 将base64编码的字符串填充为长度为4个字符的倍数,以便能够正确解码。

它在RFC 2045中定义为一个特殊的填充字符,如果在编码数据的末尾可用的比特数少于24位。