Linux 命令行 SHA-256 哈希与在线工具不同?
Posted
技术标签:
【中文标题】Linux 命令行 SHA-256 哈希与在线工具不同?【英文标题】:Linux command line SHA-256 hash different from online tools? 【发布时间】:2011-04-15 22:36:59 【问题描述】:我正在寻找一种快速计算密码的 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
为什么它们不同,哪个是正确的?
【问题讨论】:
你确定第一个哈希是 256 位的吗?它只有 160 位。第二个似乎是合理的,它有 256 位。 @Manuel -- 是的,我把它弄混了......已修复。 Generating a sha256 from the Linux command line的可能重复 @HDave 在此处查看您的结果sha256generator.online 【参考方案1】:根据我的 Mac OS X 上的echo -n "admin" | shasum -a 256
,后者是正确的。请注意,您需要执行echo -n
,否则在经过哈希处理的字符串中还有一个\n
。由于shasum
是一个Perl 脚本,您可能也拥有它。如果是这样,请尝试使用它。
【讨论】:
【参考方案2】:我在做类似的事情时遇到了这个问题。
我想我在做的事情类似于echo string | sha256sum
。
当我通过 php 哈希生成器运行它时,我会得到不同的结果。原因是因为 echo 添加了新行。
我不知道你是否使用了 echo,但如果你正在尝试 echo -n string | sha256num
。
【讨论】:
用荷马辛普森的不朽话语---DOH! 让我免于拔毛!谢谢:) 错字更正 "sha256num" -> "sha256sum"以上是关于Linux 命令行 SHA-256 哈希与在线工具不同?的主要内容,如果未能解决你的问题,请参考以下文章
openssl evp 哈希算法(md5,sha1,sha256)
是否有内置的方法或插件让Jenkins为我的工件生成SHA256哈希?