Linux命令行生成的SHA-256哈希值与在线工具生成的不同?

6

我正在寻找一种快速计算密码SHA-256哈希值的方法,以便将一些测试数据上传到我们正在使用Spring Security进行身份验证的数据库中。

首先,我找到了Linux实用程序sha256sum并对密码"admin"运行它,得到了以下结果:

fc8252c8dc55839967c58b9ad755a59b61b67c13227ddae4bd3f78a38bf394f7

然后我尝试了几个在线服务(只是为了好玩):

http://www.xorbin.com/tools/sha256-hash-calculator http://www.fileformat.info/tool/hash.htm?text=admin

两个服务都给出了非常不同的结果:

8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

为什么它们不同,哪个是正确的?

1
你确定第一个哈希是256位的吗?它只有160位。第二个看起来合理,有256位。 - Manuel Faux
@Manuel -- 是的,我搞混了...已经修复了。 - Dave
可能是重复的问题:从Linux命令行生成sha256 - legoscia
@HDave请在此处检查您的结果 https://sha256generator.online/ - Zameer Ansari
2个回答

21

我在做类似的事情时遇到了这个问题。

我做的事情有点像 echo string | sha256sum,我想是这样吧。

当我通过 php 哈希生成器运行它时,会得到不同的结果。原因是 echo 添加的新行造成的。

我不知道您是否使用了 echo,但如果您使用,请尝试 echo -n string | sha256sum


1
在霍默·辛普森不朽的话语中——哎呀! - Dave
1
让我免去了拔头发的烦恼!谢谢 :) - Silas
1
一个拼写错误更正 "sha256num" -> "sha256sum" - Cherkesgiller

5
根据我在Mac OS X上运行的命令echo -n "admin" | shasum -a 256,后者是正确的。请注意,您需要使用echo -n,否则字符串中会包含\n也会被散列。由于shasum是一个Perl脚本,您也可能有它。如果有,请尝试使用它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接