我知道字符串"foobar"使用http://hash.online-convert.com/sha256-generator生成SHA 256哈希 c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2
但是命令行shell:
hendry@x201 ~$ echo foobar | sha256sum
aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f -
生成不同的哈希 . 我错过了什么?
6 回答
由于大量的历史使用,
echo -n
起作用并且不太可能消失,但是根据the POSIX standard的最新版本,新的合规应用程序“鼓励使用printf” .如果您已安装
openssl
,则可以使用:对于其他算法,您可以将
-md4
,-md5
,-ripemd160
,-sha
,-sha1
,-sha224
,-sha384
,-sha512
或-whirlpool
替换为-sha256
.如果命令sha256sum不可用(例如,在特立独行者上),您可以使用:
echo -n "foobar" | shasum -a 256
echo
通常会输出换行符,该换行符由-n
抑制 . 试试这个:echo产生一个尾随的换行符,也是经过哈希处理的 . 尝试:
我相信
echo
会输出一个尾随的换行符 . 尝试使用-n
作为参数来回显以跳过换行符 .