Macのshasumから他のshasum計算機と異なる結果が得られるのはなぜですか?


13

私は入っています:

appletree:~ somename$ shasum -a 512 <<< test

出力は次のとおりです。

0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123  -

次に、いくつかのオンラインハッシュジェネレーターにアクセスして、「test」も入力します。彼らの答えは:

http://hashgenerator.de/

ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff

http://passwordsgenerator.net/sha512-hash-generator/

EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF

したがって、オンラインジェネレーターは同意します。Macコンソールコマンドには何が欠けていますか?

私はmanページを読んでいた。Perlライブラリを使用して実装されているようです。ただし、sha512は一意の指定になると思うので、さらに掘り下げなければなりません。


重複した質問があるようです:私のコマンドラインハッシュがオンラインMD5ハッシュの結果と異なるのはなぜですか?。他の質問は同じコンテキストにありますが、これは予期しない空白ですが、異なる状況から生じます。

  • <<<ヒア文字列で、ヒア文字列が改行を追加する方法には設計上の選択があります。
  • echo 'bla' |サブパイプを呼び出すパイピングを意味し、改行の処理方法の引数もあります。ここでは、シェルバージョンを考慮する必要があるようです。

sideshowbarkerとSpiffに感謝します。空白が再びストライクします^^ ^^
peter_the_oak


here文字列は、1行のhereドキュメントとまったく同じであることが意図されており、hereドキュメントは常に改行で終わることに注意してください。
chepner

私はシェルを使うのは初めてではありませんが、ここではいくつかの洗練された詳細とニュースに感謝します。すべてのコメントと回答に感謝します。
peter_the_oak

そのため、Macのshasumコマンドも同じであることがわかりました。この問題は技術的にはユーザーエラーであり、プログラムではなく、渡されるデータに関係していました。質問の名前を「Macのshasumから異なる結果が得られるのはなぜか」に変更することをお勧めします。そうすれば、ユーザーが作成した問題を即座に疑うことができます。(私が見たなら、この質問を今すぐチェックしたくないかもしれません。現在のタイトルは「他のshasum計算機とmacシェルshasumを区別するものは何ですか?」これはこれは実際として終わっていないものを
TOOGAM

回答:


32

shasum質問の呼び出しへの入力はtest\n(改行付き)であり、ではありませんtest

あなたが与える場合testに改行なしでshasumあなたあなたが引用するオンラインツールと同じ出力が得られます:

$ echo -n "test" | shasum -a 512
ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff  -

ちなみに、shasumMacOSで見つかったものに関して特別なものやMacOS固有のものは何もないと思います。私shasumは、標準のPerlディストリビューションの一部であると考えていますperl。たとえば、コマンドとともにインストールされます。


19

これを試して:

hexdump -C <<< test

Unixシェルを知っていると、おそらくその文字列の末尾に不要な0x0aが表示されるでしょう。


2
od制御文字にラベルを付け、より明確にします。試してみてください od -t a -t x1 <<< test(実際に使用されることはありませんhexdumpに対して)、
toddkaufmann
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.