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

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

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

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

3 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

它用作填充。


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


查看完整回答
反对 回复 2019-12-11
?
烙印99

TA贡献1829条经验 获得超13个赞

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-12-11
?
炎炎设计

TA贡献1808条经验 获得超4个赞

  • 没有。

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


查看完整回答
反对 回复 2019-12-11
  • 3 回答
  • 0 关注
  • 466 浏览
慕课专栏
更多

添加回答

举报

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