当我使用“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 | ...
而是会抑制末尾的换行符。