如果我运行命令echo 1234 | base64
,我会回来MTIzNAo=
。如果我将相同的字符串输入其他编码器(例如base64encode.org),我会得到不同的MTIzNA==
。
我看到类似的模式与编码器之间的差异。两个输出看起来非常相似,但是最后一个或倒数第二个字符有差异。
echo 12345678 | base64
输出MTIzNDU2NzgK
,但在base64encode.org上我得到MTIzNDU2Nzg=
NodeJS的Buffer encoder to base64也提供与base64encode.org编码器相同的输出,所以我假设我在Linux中使用base64
命令的方式不对。
有什么区别?
答案 0 :(得分:1)
那是因为echo有一个换行符,它被编码,但是当你把它放到各种网站或JS编码器中时(你把它放到JS中的字符串中,所以没有新行,或者进入网站的文本框,所以也没有新行。你实际上可以"看" " o ="中的换行符那里(暗示有另一个字符,而不是==这是填充的两个字符)。
尝试" echo -n 1234" - 你应该得到A ==。 " -n"没有回应换行符。
答案 1 :(得分:1)
因为有换行符:
alex@galene ~ $ echo -n 1234 | base64
MTIzNA==