我正在输入:
appletree:~ somename$ shasum -a 512 <<< test
输出为:
0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123 -
然后我去一些在线哈希生成器并输入“测试”。他们的答案是:
ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff
http://passwordsgenerator.net/sha512-hash-generator/:
EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF
因此在线生成器同意。我在 Mac 控制台命令中缺少什么?
我读了这些man
页面。我看到它是使用 Perl 库实现的。但是,我认为 sha512 是一个独特的名称,所以我必须深入研究。
似乎有一个重复的问题:为什么我的命令行哈希与在线 MD5 哈希结果不同?虽然另一个问题也处于同样的上下文中,即意外的空格,但它出现在一种不同的情况中。
答案1
shasum
问题中调用的输入是test\n
(带有换行符),而不是test
。
如果您test
不给出换行符,shasum
您将获得与所引用的在线工具相同的输出:
$ echo -n "test" | shasum -a 512
ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff -
顺便说一句,我认为shasum
在 MacOS 上发现的任何东西都不是 MacOS 特有的;我认为shasum
它是标准 Perl 发行版的一部分 — — 与命令一起安装perl
。
答案2
尝试这个:
hexdump -C <<< test
了解 Unix shell 后,您可能会在该字符串末尾看到不想要的 0x0a。