为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

我知道什么是base64编码以及如何base64在C#中计算编码,但是我多次看到,当我将字符串转换为base64时,最后会有一个=。提出了一些问题:难道一个base64字符串总是以结束=?为什么=在末尾附加get?
查看完整描述

3 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

它用作填充。


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


查看完整回答
反对 回复 2019-10-24
?
慕后森

TA贡献1802条经验 获得超5个赞

1-不

2-简短的回答:第65个字符(“ =”符号)仅在消息编码的最终过程中用作补充。

如果您的字符串具有3个字符的倍数,则不会有'='符号,因为Base64编码使用每个三个字节(8位)并将它们表示为ASCII标准中的四个可打印字符。

细节 :

(a)如果要编码

ABCDEFG <=> [ ABC] [ DEF] [G

Base64将处理(产生4个字符)第一个块和第二个块(因为它们完成了),但是对于第三个块,它将==在输出中添加一个双精度 字以完成所需的4个字符。因此,结果将是 QUJD REVG Rw == (无空格)

(b)如果您想编码...

ABCDEFGH <=> [ ABC] [ DEF] [GH

同样,它将=在输出的末尾仅添加一个以获取4个字符,结果将为 QUJD REVG R0g = (无空格)


查看完整回答
反对 回复 2019-10-24
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

  1. 没有。

  2. 将Base64编码的字符串的长度填充为4个字符的倍数,以便可以正确对其进行解码。


查看完整回答
反对 回复 2019-10-24

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信