从Linux命令行生成SHA-256哈希[关闭]

问题描述 投票:230回答:6

我知道字符串“ foobar”使用以下命令生成SHA-256哈希c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2http://hash.online-convert.com/sha256-generator

但是命令行shell:

hendry@x201 ~$ echo foobar | sha256sum
aec070645fe53ee3b3763059376134f058cc337247c978add178b6ccdfb0019f  -

生成另一个哈希。我想念什么?

linux shell sha256
6个回答
358
投票

echo通常会输出换行符,并用-n禁止换行。试试这个:

echo -n foobar | sha256sum

99
投票

如果已安装openssl,则可以使用:

echo -n "foobar" | openssl dgst -sha256

对于其他算法,您可以将-sha256替换为-md4-md5-ripemd160-sha-sha1-sha224-sha384-sha512-whirlpool


44
投票

如果命令sha256sum不可用(例如,在Mac OS X v10.9(小牛)上,则可以使用:

echo -n "foobar" | shasum -a 256


29
投票

[echo -n有效,并且由于大量的历史使用而不太可能消失,但是,对于the POSIX standard的最新版本,“鼓励使用新的兼容应用程序printf”。]]


8
投票

printf产生一个尾随换行符,该字符也被散列。试试:


7
投票

我相信/bin/echo -n foobar | sha256sum 输出尾随换行符。尝试使用echo作为参数来回显以跳过换行符。

© www.soinside.com 2019 - 2024. All rights reserved.