プロが教えるわが家の防犯対策術!

同一のファイルを検索し削除するソフトで、ハッシュ値等を比較して同一かどうかを判断しるというものがありました。
このハッシュ値というのは何ですか?

A 回答 (3件)

ハッシュ値、大きくアバウトに言ってしまうと、データを特定するするために、あるアルゴリズム(関数)から算出される値。


簡単な例では、データの同一性をチェックするための「チェックサム」もその1つ。コンパイラの高速テーブル検索でもハッシュが使われる。
「チェックサム」では、データを一定のビット数で区切ってその総和を、送り側で計算してデータに付加しておく。これが「チェックサム」といわれるの由来。
受け側でこの「チェックサム」を除く、純データの「チェックサム」を計算し直し、付き合わせることでデータの同一性をかなりの高確率で保証できる。

2006/07/05
株式会社タケキ IT教育事業部 出口 雄一
http://itpro.nikkeibp.co.jp/article/COLUMN/20060 …
連載目次へ >>ポイント
●あるデータをハッシュ関数を使って計算した結果がハッシュ値である。メッセージ・ダイジェスト、フィンガープリント(指紋)とも呼ばれる
●ハッシュ値は基データのサイズに関わらず固定長になる。長さはアルゴリズムによって異なる
●ハッシュ値は「基データが異なれば、その計算結果であるハッシュ値も異なるのが普通で、同じハッシュ値になることはほとんどない」「ハッシュ値とハッシュ関数がわかっても、基のデータを特定できない」という特徴がある

チェックサム
出典: フリー百科事典『ウィキペディア(Wikipedia)』
http://ja.wikipedia.org/wiki/%E3%83%81%E3%82%A7% …
チェックサム (Check Sum)とは誤り検出符号の一種である。符号値そのものを指すこともある。他の誤り検出符号と比べて信頼性は低いが、それでも単純計算で99.5%以上(1オクテットのチェックサムの場合255/256、2オクテットなら65535/65536)の検出率がある上にアルゴリズムが簡単であることから、簡易な誤り検出に用いられる。
また、誤り検出その他データの検証のための符号として広く使われてきた経緯から、俗に誤り検出符号自体の代名詞としても用いられる場合がある。例えばCRCの符号値やMD5のハッシュ値を、それぞれ「CRCチェックサム」「MD5チェックサム」と呼ぶことがある。これらはアルゴリズムが異なりsumでもないため「チェックサム」と呼ぶことは明らかな誤解であるものの、「(チェックサムよりも)信頼性の高い誤り検出符号」程度の意味で使われる。

ネットワークを利用してのデータ送信時、IPパケットにデータを分割した際のIPヘッダの検査での利用例を以下に示す。
1.IPヘッダのチェックサムフィールドにゼロをセット
2.IPヘッダを16ビット単位で加算
3.総計の下位16ビットの補数をIPヘッダのチェックサムフィールドへセット
4.送信
5.受信したらIPヘッダを16ビット単位で加算
6.総計がゼロなら正常(チェックサムフィールドにはチェックサムフィールドがゼロの場合のチェックサムの補数がセットされているので、総計=チェックサムフィールド以外のチェックサム+チェックサムフィールド以外のチェックサムの補数=ゼロになれば正しい
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
なんとなく分かってきました。

お礼日時:2012/11/06 08:03

>このハッシュ値というのは何ですか?



「ハッシュ関数」と言う特定の値を返す関数で求めた値のこと。

ハッシュ関数は「計算の元となるデータの量(ファイルサイズ)が同じでも、データの並びが異なれば違う値を返す」と言う性質を持たせた関数です。

ファイルのサイズが異なれば「違うファイル」なのは明白です。

ファイルのサイズが同じであっても計算したハッシュ値が異なれば「違うファイル」と判ります。

ファイルのサイズが同じで計算したハッシュ値も同じなら「同じファイルである可能性」があります。

ハッシュ値が一致しても「サイズが同じで中身が違うファイルで、偶然、ハッシュ値が同じになっちゃう時」があるので、ハッシュ値が一致した場合だけ「ファイルの中身を1バイトづつ比較して、最終確認」します。

ファイルの中身を1バイトづつ比較するのは時間が掛かるので、ハッシュ値を使って、中身を全部調べなくても同一かどうかすぐに判るようにしているのです。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
良く分かりました。

お礼日時:2012/11/09 14:02

ファイル内容の同一性では。

    • good
    • 2
この回答へのお礼

回答ありがとうございました

お礼日時:2012/11/06 08:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!