【ハッシュ値】

Last-modified: 2019-03-16 (土) 10:46:16

【ハッシュ値】とは

【ハッシュ関数】?から返される値。
つまり

元のデータをあれやこれやして作られた一見すると適当に見える値
です。 (^^)

順番に見ていきましょう。
まずは予備知識として「関数」と「【ハッシュ関数】?」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は、適当に読み飛ばしてください。

関数は「何かを入れると何かを計算して何かを返してくれるプログラムの部品」です。
一般的には、入力を受けて処理を行い、その結果として出力があります。

d001949-1.png

ついでなので書いておくと、関数に入れる値は「引数」と言います。

d001949-2.png

関数から出てくる値は「戻り値」です。

d001949-3.png

ちょっと汚い話で恐縮ですが、人間は、ご飯を食べて、ウンチを出します。

d001949-4.png

人間が関数だと考えてください。
ご飯に相当するものが引数です。
ウンチに相当するものが戻り値になります。

d001949-5.png

ハッシュ関数は「適当な値を中に放り込むと適当な値を返してくれる関数」です。
例えば「愛媛みかん」を入れると「3」が返ってきます。
「青森りんご」を入れると「4」が返ってきます。
「栃木苺」を入れると「とちおとめ」が返ってきたりします。

d001949-6_0.png

何を入れると何が返ってくるか、入れたものからは分かりません。
返ってくるのは適当な値です。

ただし、同じ物を入れれば、必ず同じ値が返ってきます。
「愛媛みかん」を入れると、必ず「3」が返ってきます。
何回入れても「3」が返ってきます。

1.適当な値が返ってくる
2.同じ入力に対しては同じ値が返ってくる

というのがハッシュ関数の特徴です。
※話を単純化するために「適当な値」という表現を使っていますが、実際には適当ではありません。入力されたデータを「特定のルールに沿って」ぐちゃぐちゃにした値が返ってきます。

以上を踏まえて、【ハッシュ関数】?から返ってくる値(戻り値)が「【ハッシュ値】(ハッシュチ)」です。
入力されたデータを元にして作られた適当な値(適当に見える値)です。

d001949-7_0.png

【ハッシュ値】には

【ハッシュ値】から元のデータを特定するのは、ほとんど無理
・元のデータが同じなら生成される【ハッシュ値】も同じ
・元のデータが少し変わると生成される【ハッシュ値】はガッツリ変わる

といった特徴があります。
「元データ→【ハッシュ値】」はお手軽だけど「元データ←【ハッシュ値】」はすっごい大変だよ、ということです。

その特徴を活かして、【ハッシュ値】さんは【ハッシュテーブル】?やデータのチェックなどで活躍しています。
ハッシュ値さんの活躍の模様は、ここでは触れません。
興味がある方は「【ハッシュテーブル】?」や「【ハッシュ関数】?」の解説をご覧ください。

まぁ「【ハッシュ値】」って単語が出てきたら「【ハッシュ関数】?の戻り値(入力に対応する適当な値)なんだな~」と、お考えください。


関連問題

【ハッシュ関数】?;入力されたデータに対して、適当な値を返してくれる関数。
【ハッシュテーブル】?;データの入った箱に名札を付けて、名札と中身のデータをセットで管理するやり方
【ハッシュ化】?;元の値を「ハッシュ関数」と呼ばれる「値を中に放り込むと適当な値(適当に見える値)を返してくれる関数」に入れて「ハッシュ値」と呼ばれる「適当な値(適当に見える値)」に変換すること
【メッセージダイジェスト】?;ハッシュ関数から返される値。


FAQ


Tag: [[【】]]