web-dev-qa-db-ja.com

DVDのsha256sumを計算する

ISOイメージからDVDが焼けました。 ISOイメージのsha256sumもあります。ハッシュを比較するために、DVDからISOイメージを作成し、sha256sum image.isoを実行しましたが、元のイメージのハッシュとは異なります。

これはDVDのハッシュを計算する正しい方法ですか?そうでない場合、なぜそれが機能しないのですか?

編集:誰かがアーロンミラーがコメントで提供した理由を説明できますか?元のISOとまったく同じオプションでISOファイルを作成する方法はありますか?

5
hpn

これを行うために私が見つけた唯一の方法は、画像ではなくファイル自体をハッシュすることです。 Febooti Hash&CRC (Windows)または Quick Hash GUI のようなツールを使用すると、問題のすべてのファイルを選択し、右クリックして、ハッシュを記録できます。もちろん、コマンドラインから sha256sum でも同じことができます。これらのファイルをディスクに書き込んだ後、ディスク上のファイルを参照し、以前と同じようにハッシュを確認します。ハッシュは一致する必要があります。

追加の考え:

現在のプロセスは、チェックするディスクからISOを作成することであることを示しています。これは余分で不必要なステップだと私は主張します。私が提案したように、ディスクを挿入してディスク上のファイルをハッシュし、元のイメージにあるファイルのハッシュと比較するだけです。最初にISOを作成する必要がないため、これははるかに高速です。

6
ubiquibacon

更新:

これはDVDのハッシュを計算する正しい方法ですか?

まず、このサイトで行われているように、 DVD自体のsha256sumを取得します

...すでにCDを作成しましたが、戻って確認しますか? sha1sumまたはmd5sumがあれば、それは簡単です。

.。

DVD-RWドライブは/ dev/hdaです

g33kgrrl @ home〜/Desktop $ sha1sum/dev/hda

89164d79d84f483c3642f25507186e58bf5fc0d8/dev/hda

それらはsha1sumを使用しますが、sha256sumでも同じように機能するはずです。まず、それを元のISOのハッシュと比較します。

そうでない場合、なぜそれが機能しないのですか?

このユーザーが指摘するように

コピーまたは元の画像のいずれかに後続ゼロがあるため、サイズがわずかに異なる場合があります

彼はこれが事実であるかどうかを調べるためのいくつかのステップを提供します、引用:

たとえば、copy.isoがorig.isoよりも小さい場合:

sha1sum copy.iso
head -c $(stat -c %s copy.iso) orig.iso

もちろん、末尾のバイトがゼロであることも確認する必要があります。

od -j $(stat -c %s copy.iso) orig.iso

そして最後にあなたの新しい質問に戻ります:

元のISOとまったく同じオプションでISOファイルを作成する方法はありますか?

私はまだこれを行う方法を見つけていません。ただし、各ステップのハッシュを取得すると、少なくとも違いが発生した場所を確認できます。私の推測では、ISOファイルを書き込むプログラムは、書き込むために必要ないくつかの手順を実行しますが、それはまた、何らかの方法でイメージを変更しますか?

この質問の範囲外ですが、毎回同じように変更されるかどうかを確認するのは興味深いでしょう。言い換えれば、複数のディスクを書き込んで、ハッシュがすべて同じかどうかを確認しますか?

元の回答:

これがあなたの質問を満たすかどうかわからない(おそらくあなたの既存のアプリケーションはすでにこの機能を実行している)

しかし、 ImgBurnユーティリティ (Windowsユーティリティ、申し訳ありません)を入手した場合、ISOイメージを使用してディスクを「検証」する機能があります。

私の推測では、これはあなたがやろうとしていることを達成するために、内部でいくつかの追加のステップを実行します。オープンソースではないことを残念に思います。さもないと、コードをプルアップして、何が起こっているのかを正確に確認できます。

おそらく、同様の機能を持ち、オープンソースである他の書き込みユーティリティがありますか?

4
dtmland

これは私にとってはうまくいきました(ただし、完了するまでに約20分かかりました):

# dd if=/dev/sr0 |sha256sum
0
Steven