猿问

为什么base64编码的字符串的末尾有=符号

我知道什么是base64编码以及如何base64在C#中计算编码,但是我多次看到,当我将字符串转换为base64时,最后会有一个=

提出了一些问题:

  1. 难道一个base64字符串总是以结束=

  2. 为什么=在末尾附加get?


大话西游666
浏览 5977回答 3
3回答

万千封印

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

慕后森

1-不2-简短的回答:第65个字符(“ =”符号)仅在消息编码的最终过程中用作补充。如果您的字符串具有3个字符的倍数,则不会有'='符号,因为Base64编码使用每个三个字节(8位)并将它们表示为ASCII标准中的四个可打印字符。细节 :(a)如果要编码ABCDEFG&nbsp;<=> [&nbsp;ABC] [&nbsp;DEF] [GBase64将处理(产生4个字符)第一个块和第二个块(因为它们完成了),但是对于第三个块,它将==在输出中添加一个双精度&nbsp;字以完成所需的4个字符。因此,结果将是&nbsp;QUJD&nbsp;REVG&nbsp;Rw ==&nbsp;(无空格)(b)如果您想编码...ABCDEFGH&nbsp;<=> [&nbsp;ABC] [&nbsp;DEF] [GH同样,它将=在输出的末尾仅添加一个以获取4个字符,结果将为&nbsp;QUJD&nbsp;REVG&nbsp;R0g =&nbsp;(无空格)

慕田峪9158850

没有。将Base64编码的字符串的长度填充为4个字符的倍数,以便可以正确对其进行解码。
随时随地看视频慕课网APP
我要回答