
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
>前回のハッシュ値と較べて、一緒であればファイルは破損していません、という考え方でいいのでしょうか?
違います。
”前回と同じ可能性がある”だけです。
完全に一致している事を証明するには、『コピーと照合』するしかありません。
ハッシュ関数は、”衝突”が避けられないです。
実際に、数年前に同じファイルサイズで、md5の値が同じもの(これを”衝突”という)が発見されています。
http://itpro.nikkeibp.co.jp/free/ITPro/Security/ …
利用者の立場では、単一のハッシュ関数に頼るのではなく、
複数のハッシュ関数の一致を確認した方がより安全でしょう。
# これも、『コピー(バックアップ)』より劣りますが。
参考までに、FreeBSDのportsコレクション(*1)では、md5とsha1とファイルサイズが一致した場合”正しい”として動作するように作られています。
*1:FreeBSDでのアプリケーションを手軽にインストールする仕組み。
インターネットを介してファイルの正常性を確認する必要がある。
この手の話題は、”暗号化 ハッシュ関数 md5 sha1”等をキーに検索すると沢山出て来ますね。
No.4
- 回答日時:
>同じハッシュ値が検出されるということは有り得ないですよね?
例えばAとBのファイルがそれぞれあって
両者はファイルサイズが違っていて明らかに違うだろうと思っていても
ハッシュ値が同じなんてことはあります。
これはハッシュの精度?(何パターンの種類?)だと思うのですが
例えばAとBをCRC16でハッシュ値をとってみると同じだが
CRC32で取ってみると異なるハッシュ値だった
ということがあります。
単純にCRC16とCRC32ではbit?の桁数が上がったので
ハッシュパターンも増え、異なった数字が出たに過ぎないわけです
とはいえ、やはりCRC32も限界になってくるので
md5なんてものがあるわけですが
md5もやはり同じ値を示す場合があります(あきらかにファイルサイズが違いのに同一のmd5値など)
現状、ハッシュをとるというのは
精度や普及状態をみるとmd5がモアベターなのですが
ほかの人も言うように、ハッシュをとると必然的に
ハッシュ値をもとめている時間が掛かります。
例えばファイルサイズにもよるのですが、
数Gだと1-3分ほど待つことになります。
md5は精度が高いので時間が掛かるのですが
例えばCRC16に変更してもG単位では1-3分かかって大差ありません。
当方は、dcfさんと違うのですが、
・ファイルサイズが同じでもmd5でみたら異なるファイル
・ファイル名はまったく違うがファイルサイズは同じでmd5も同じ
(ファイルがなんらかの経路をわたる際に名前を変えた可能性)
・書庫の種類・圧縮率が異なるものの中身は同じ書庫ファイル
というのを検索したかったので
つまりファイルの重複チェックをしたかったのですが
ベクターにこういうソフトって無いんですよね。
結構md5で修復チェックするようなのもあるのですが
総ファイル数1万超えて1つ1つが200Mとか2G単位とか色々あるので
もうそんなのまでmd5だと、何時間あっても足りないんですよね
でまぁ仕方ないから自分で要件を満たすソフトを自作したんですけどね
おかげで2G以上もあるファイルも、
わずか1-2秒足らずでハッシュ値出しますし180秒ぐらいあれば
250-300GのHDぐらいは、丸ごとハッシュ値出せるようになったわけで・・・・・
おっと少し脱線してしまいましたが、
>しかし同じハッシュ値が検出されるということは有り得ないですよね?
md5なら確立は低いと思います。
やはりどうしても、md5値が同一でもファイルサイズがハナから
異なっているという状況があることは何万分、何億万分の1程度は
あるはずで・・・・・・ありえないことはないという状況です。
ただファイルサイズは同じで、md5値が同じであるけど
実は中身のファイルは異なるなどは、かなり稀でしょう
たぶん皆無だと思います。
これだと最早、ファイルサイズは同じで、md5値が同じ
ファイルの中身も開いてみたけど同じようだという状況と
一見して開いて黙視して見るまでは同じに見えるわけですから
始末に悪いですよね。
あと老婆心ながら言いますが少し思ったので良いますが
md5値からファイルの中身は復元できません。
その時点で壊れていると思うという判断は出来ますが
正常なmd5があれば壊れたファイルで何とか、もとのファイルに戻す
なんてことは出来ないので、そこのところは気をつけたほうが良いです。
また海外のソフトでmd5からファイルを作るというソフトがありますが
オリジナルと同一のモノは出来ません。
これは先ほど説明したとおりです。念のため。
No.3
- 回答日時:
>何らかの理由でHDD・メディア上でファイルが破損し、しかし同じハッシュ値が検出されるということは有り得ないですよね?
異なるファイルから同じハッシュ値が算出される、という可能性はあります。
ただまあ、確率的にあり得ませんが。
ファイルが壊れているかどうかを調べるには、ハッシュはあまり向いていないと思いますよ。
理由は、ファイルの破損は別の手段(破損を防ぐファイルシステムの機能)などで既に保護されているのが一般的で、わざわざハッシュ値を計算する手間を増やしてもメリットがないからです。
また、壊れているのが分かっても回復する手段が無いですし。バックアップでも取った方がよほど前向きです。
No.2
- 回答日時:
「前回のハッシュ値と較べて、一緒であればファイルは破損していません、という考え方でいいのでしょうか?」
というのは正しくないです。
「ハッシュ値が違えば、ファイルの内容が変化している(壊れている)」というのは正しいです。逆に言えば「ハッシュ値が一緒でもデータの一部が異なる場合がある」ことになります。
例えば、簡単なハッシュ値の計算として排他的論理和(xor)をとる場合を考えてみましょう。これはデータの値を全て xor することでハッシュ値を求めることができますが、例えばデータの順序が入れ替わってもハッシュ値は変わりません。
基本的に、ハッシュ値で表すことができる場合の数は、ファイルのデータ全てによって表す事ができる場合の数より小さいので、避けようがありません。ハッシュ値が、何ギガバイトもあるデータファイルでも 例えば 256 bit とか程度の数値で表現できる、ことに大きな意味があるからです。
例えばあるディスク内にあるファイルの数が、10 の 9 乗(10億!)個あったとしても、これは 30 bit で表すことができる数ですので、ディスクにあるファイルが同じ、例えば 256 bit のハッシュ値を持つ「可能性」は非常に低いと考えられます。つまりハッシュ値を使えば「同じ内容(かもしれない)ファイル」を容易に識別することが可能になります。
以前、質問者さんと同じような目的で md5 を計算し、ファイルの変更の有無を検出できるよう、簡単なスクリプトを書いたことがありますが、基本的にハッシュの計算にはファイルを全て読み込むため、期待した程高速にはなりませんでした。まあ、以前のバックアップデータを取っておく必要がない、2つのファイルを比べるよりは速い、というのが利点ということでしょうか。
確かに No.1 さんのおっしゃる通り、破損、変更、改ざんを見つけるためにハッシュ値が実際に使われていますが、これは、他により有効な方法がない(見つかっていない)ためです。ということで、100% 確実な方法ではないことにご注意ください。つまりは、全くチェックする方法がない、というよりマシという考え方で使われているのです。
ありがとうございました。
>例えばデータの順序が入れ替わってもハッシュ値は変わりません。
ですが、データの順序とは「1」「0」の順序が変わるということですか?
順序が変わるとファイルの中身ももちろん変わるということですよね。
同じデータで順序が変わったり、「1」「0」の数値が抜けたり増えたりするということは、
データが壊れている、という認識でよろしいでしょうか?
No.1
- 回答日時:
>ファイル破損調査に使用しようかなと思っているのですが、いかがでしょうか?
既に利用されていますよ。
特に通信中のデータの破損チェックなどに使われていると思います。
HDD・メディアの破損による、データ破損チェックにも有効だと思います。
フリーソフトも、色々出てますよ。
http://www.vector.co.jp/vpack/filearea/win/util/ …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) ハッシュ値を取ったらその取ったハッシュ値はどのように保管すればよいのでしょうか?ハッシュ値のデータす 2 2023/07/02 19:40
- その他(コンピューター・テクノロジー) 3台の外付けHDDにバックアップして1年放置した後にその3台の外付けHDDのデータが壊れてないかを知 3 2023/07/02 21:27
- その他(コンピューター・テクノロジー) なぜデータの整合性を確認する時はハッシュ値で確認するのでしょうか?ハッシュ値は衝突する可能性があるの 5 2023/07/05 20:38
- その他(コンピューター・テクノロジー) この用途で快適に使うにはどのくらいのスペックのパソコンを買うべきなのでしょうか? ・100ギガのデー 4 2023/07/20 19:50
- その他(コンピューター・テクノロジー) exFATの外付けSSDからパソコンのNTFSの内蔵ストレージにコピーした場合はコピーしたデータのハ 2 2023/08/09 19:51
- その他(コンピューター・テクノロジー) インターネットを使わずにハッシュ値を取ることは可能なのでしょうか? 1 2023/06/27 20:27
- その他(コンピューター・テクノロジー) 外付けHDDや外付けSSDのデータが壊れていないかをハッシュ値で確認する方法は確実ではないって本当で 3 2023/06/26 20:42
- その他(コンピューター・テクノロジー) パソコンは同時に作業をすることが出来るらしいですが以下の動作の全てを同時にすることも可能なのですか? 5 2023/07/22 11:20
- その他(コンピューター・テクノロジー) ベリファイの機能がある製品やソフトが世の中には多くありますが、それらのベリファイは何でベリファイして 3 2023/06/28 19:49
- その他(セキュリティ) デジタル署名について 4 2022/08/12 14:54
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
cdrファイルを開きたい
-
DATファイル、削除しても構わない?
-
拡張子 .pos とはどんなファイ...
-
「拡張子」という言葉の語源は?
-
携帯のVMGファイルをパソコンで...
-
binファイルを削除したいのですが
-
データベースの開き方がわかり...
-
ISOのはずがMDS、IFO、I00ファ...
-
HEVCのファイルの拡張子って何...
-
ハッシュ値について
-
”DVDISOファイル”って何ですか?
-
10000KBのファイルを他のPCへ送...
-
ISOファイルのインストール(Wi...
-
ネットカフェのPCの安全性につ...
-
ファイル名を編集するとそのフ...
-
gifで動く画像について
-
メールにフォルダを添付したい!
-
容量の大きいzipファイルの解凍...
-
ゲームMODのpakファイルを開けない
-
右クリック→新規作成→圧縮(zip...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
cdrファイルを開きたい
-
携帯のVMGファイルをパソコンで...
-
DATファイル、削除しても構わない?
-
ファイル名を編集するとそのフ...
-
リズム天国ゴールドのリセット方法
-
.pcapファイルをテキストファイ...
-
データベースの開き方がわかり...
-
拡張子 .pos とはどんなファイ...
-
「拡張子」という言葉の語源は?
-
ファイルを開く方法を教えて下さい
-
添付ファイルのjpeg画像が見れ...
-
10000KBのファイルを他のPCへ送...
-
HEVCのファイルの拡張子って何...
-
歌詞ファイルをMP3に入れる方法
-
.emlファイルは他の形式で開け...
-
音楽ファイルの分割方法(WAV+CUE)
-
ISOファイルのインストール(Wi...
-
ISOのはずがMDS、IFO、I00ファ...
-
VCDの映像をPCに抽出するには?
-
USBメモリ
おすすめ情報