2016-04-12 18 views
0

私の苦境を記述するために最善を尽くします。SHA-256異なる結果

私は入力ファイルを受け取り、その上にSHA-256ハッシュを実行するpythonスクリプトを書いています。私は生のバイナリイメージを取得して(私のMac上:256 somefile.bin -a shasum)をコマンドプロンプトを介して実行した場合

は:「bda1ca ...」

、私は「正しい」のダイジェストを取得します私はオンラインの電卓を使ってこのバイナリを実行し、同じ結果を得ました。

私は、バイナリエディタでこのハッシュを開き、私のクリップボードにバイトの全てを抽出し、SHA256の電卓に貼り付けた場合、私は別の結果を得る:「689035 ...」を

私はここで何をしないのです?私は上/下のキャッシュ、各バイト間のスペースを試してみました。私は他に何をしようとしているのか分からない。

この問題は私がPythonでこれを実装しているために始まったのですが、コードが心配される前に、なぜこれが違うのかを理解しようとしています。

+0

(XXDは、私は、ファイルの内容を表示するために使用されるバイナリエディタです)。実際には、私のpythonスクリプトは正解でしたが、私は誤った指示に基づいて順不同でファイルを読み込んでいました!しかし、dvxamはそれを十分に説明して、今すぐ入手します。 –

答えて

1

16進エディタから "バイト"をキーボードにコピーすると、その文字列表現がコピーされた可能性が高くなります。

多分これらのコマンドは、あなたがそれを得るために役立ちます。

$ echo "Hello, world" > my_bin 

$ shasum -a 256 my_bin 
37980c33951de6b0e450c3701b219bfeee930544705f637cd1158b63827bb390 - 


$ cat my_bin | shasum -a 256 
37980c33951de6b0e450c3701b219bfeee930544705f637cd1158b63827bb390 - 

$ cat my_bin | xxd -p | shasum -a 256 
0e535a1a279db9753bcbc226b9305e6e6a39ba2d866c01a44cb9aac8d5fc9833 - 

私が正しいようdvxamの答えを選択するつもりです

+0

ありがとう、私はそれほど理解しています。これを回避する方法は何ですか? たとえば、SHA256を実行しているバイナリは、より大きなバイナリの小さな部分です。私がSHA256より小さいバイナリの場合、結果は1つですが、私がPythonスクリプトに値を "読み込む"だけでは別の結果が得られます。 –