Вычисление SHA256 дает мне неверный результат, когда я использую "shasum":
$ echo "abcd" | shasum -a 256
fc4b5fd6816f75a7c81fc8eaa9499d6a299bd803397166e8c4cf9280b801d62c -
# or
$ echo abcd | shasum -a 256
fc4b5fd6816f75a7c81fc8eaa9499d6a299bd803397166e8c4cf9280b801d62c -
И в рубине:
$ irb
irb(main):001:0> require "digest"
=> true
irb(main):005:0> Digest::SHA256.hexdigest("abcd")
=> "88d4266fd4e6338d13b845fcf289579d209c897823b9217da3e161936f031589"
Онлайн-генераторы дают мне результат, как и ruby.
Почему результат «шасум» неверен?
Это потому что echo
по умолчанию добавляет символ новой строки в конец вывода. Попробуйте использовать:
echo -n abcd | ...
вместо этого, что подавляет новую строку в конце.