sha1编码后base64编码,为什么结果不一样
base64 encoding after sha1 encoding, why different results
我尝试在shell中执行这两个命令,我认为结果应该是一样的,但不是。
(1)
echo -n 123456 | openssl sha1 -binary | base64
结果:
fEqNCco3Yq9h5ZUglD3CZJT4lBs=
(2)
echo -n 123456 | openssl sha1 | base64
结果:
KHN0ZGluKT0gN2M0YThkMDljYTM3NjJhZjYxZTU5NTIwOTQzZGMyNjQ5NGY4OTQxYgo=
我认为命令 'base64' 的输入应该是相同的字节数组。为什么我得到不同的结果?
解码结果会告诉你发生了什么。
第二种情况,decodedBase64字符串包含:
(stdin)= 7c4a8d09ca3762af61e59520943dc26494f8941b
所以你得到一个哈希的十六进制字符串,而不是二进制值,加上开头完全不需要的 '(stdin)= '。
用 -binary
你得到想要的二进制值。
我尝试在shell中执行这两个命令,我认为结果应该是一样的,但不是。
(1)
echo -n 123456 | openssl sha1 -binary | base64
结果:
fEqNCco3Yq9h5ZUglD3CZJT4lBs=
(2)
echo -n 123456 | openssl sha1 | base64
结果:
KHN0ZGluKT0gN2M0YThkMDljYTM3NjJhZjYxZTU5NTIwOTQzZGMyNjQ5NGY4OTQxYgo=
我认为命令 'base64' 的输入应该是相同的字节数组。为什么我得到不同的结果?
解码结果会告诉你发生了什么。
第二种情况,decodedBase64字符串包含:
(stdin)= 7c4a8d09ca3762af61e59520943dc26494f8941b
所以你得到一个哈希的十六进制字符串,而不是二进制值,加上开头完全不需要的 '(stdin)= '。
用 -binary
你得到想要的二进制值。