shasum 返回错误结果

shasum 返回错误结果

当我使用“shasum”时,计算 SHA256 给出了错误的结果:

$ echo "abcd" | shasum -a 256
fc4b5fd6816f75a7c81fc8eaa9499d6a299bd803397166e8c4cf9280b801d62c  -

# or

$ echo abcd | shasum -a 256
fc4b5fd6816f75a7c81fc8eaa9499d6a299bd803397166e8c4cf9280b801d62c  -

在 ruby​​ 中:

$ irb
irb(main):001:0> require "digest"
=> true

irb(main):005:0> Digest::SHA256.hexdigest("abcd")
=> "88d4266fd4e6338d13b845fcf289579d209c897823b9217da3e161936f031589"

在线生成器像 ruby​​ 一样给我结果。

为什么“shasum”的结果不正确?

答案1

这是因为echo默认情况下会在输出末尾添加换行符。尝试使用:

echo -n abcd | ...

而是会抑制末尾的换行符。

相关内容