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

当从相同的输入字符串中获取 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' | base64

TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVAo=


天涯尽头无女友
浏览 439回答 2
2回答

蝴蝶不菲

echo 'Laurence Tureaud is Mr. T'Echo 在字符串后添加一个换行符。尝试以下操作来删除换行符:echo -n 'Laurence Tureaud is Mr. T' | base64你得到 TGF1cmVuY2UgVHVyZWF1ZCBpcyBNci4gVA==

白衣非少年

所有的输出都是一样的。唯一的区别是 bash\n在使用echo. 因此,这是附加到输出的附加字符(该字符=只是 base64 中的填充)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go