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

给定相同的输入字符串,为什么这些 base64 编码输出不同?

给定相同的输入字符串,为什么这些 base64 编码输出不同?

Go
天涯尽头无女友 2021-10-04 16:21:51
当从相同的输入字符串中获取 bas64 编码的字符串时,我发现 JavaScript、Groovy 和 Go 具有相同的结果,但 GNU base64 略有不同。这是为什么?JavaScript (nodejs v0.10.33):new Buffer('Laurence Tureaud is Mr. T').toString('base64');TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVA==Groovy(Java 8 上的 2.3.7):'Laurence Tureaud is Mr. T'.bytes.encodeBase64().toString()TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVA==去(1.4):b64.StdEncoding.EncodeToString([]byte("Laurence Tureaud is Mr. T"))TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVA==GNU base64(带有 UTF-8 术语字符集的 GNU coreutils 8.12.197-032bb):echo 'Laurence Tureaud is Mr. T' | base64TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVAo=
查看完整描述

2 回答

?
蝴蝶不菲

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

echo 'Laurence Tureaud is Mr. T'

Echo 在字符串后添加一个换行符。

尝试以下操作来删除换行符:

echo -n 'Laurence Tureaud is Mr. T' | base64

你得到 TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVA==


查看完整回答
反对 回复 2021-10-04
?
白衣非少年

TA贡献1155条经验 获得超0个赞

所有的输出都是一样的。

唯一的区别是 bash\n在使用echo. 因此,这是附加到输出的附加字符(该字符=只是 base64 中的填充)。


查看完整回答
反对 回复 2021-10-04
  • 2 回答
  • 0 关注
  • 438 浏览
慕课专栏
更多

添加回答

举报

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