为什么linux bash64命令的输出与其他编码器不同?

时间:2014-04-21 16:01:38

标签: linux encoding base64

如果我运行命令echo 1234 | base64,我会回来MTIzNAo=。如果我将相同的字符串输入其他编码器(例如base64encode.org),我会得到不同的MTIzNA==

我看到类似的模式与编码器之间的差异。两个输出看起来非常相似,但是最后一个或倒数第二个字符有差异。

echo 12345678 | base64输出MTIzNDU2NzgK,但在base64encode.org上我得到MTIzNDU2Nzg=

NodeJS的Buffer encoder to base64也提供与base64encode.org编码器相同的输出,所以我假设我在Linux中使用base64命令的方式不对。

有什么区别?

2 个答案:

答案 0 :(得分:1)

那是因为echo有一个换行符,它被编码,但是当你把它放到各种网站或JS编码器中时(你把它放到JS中的字符串中,所以没有新行,或者进入网站的文本框,所以也没有新行。你实际上可以"看" " o ="中的换行符那里(暗示有另一个字符,而不是==这是填充的两个字符)。

尝试" echo -n 1234" - 你应该得到A ==。 " -n"没有回应换行符。

答案 1 :(得分:1)

因为有换行符:

alex@galene ~ $ echo -n 1234 | base64
MTIzNA==