メッセージダイジェスト関数
ハッシュ関数のことだよ
関数だよ
入力に対して適当な値(ハッシュ値)が返ってくるよ
入力する内容が同じであれば、同じ値が返ってくるよ
簡単に書くよ
メッセージダイジェスト関数(読:メッセージダイジェストカンスウ 英:message digest function)とは
「ハッシュ関数」のこと。
用語の中身としては
入力されたデータをもとにして、適当に見える値(特定のルールに沿って、ぐちゃぐちゃにした値)を返してくれる関数
(処理のまとまり)
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「関数」と「ハッシュ関数」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
関数は「何かを入れると何かをやって何かを返してくれる、処理のまとまり」です。
一般的には、入力を受けて処理をやり、その結果として出力があります。
ついでなので書いておくと、関数に入れる値は「引数(ヒキスウ)」と言います。
関数から出てくる値は「戻り値」です。
ちょっと汚い話で恐縮ですが、人間は、ご飯を食べて、ウンチを出します。
人間が関数だと考えてください。
ご飯に相当するものが引数です。
ウンチに相当するものが戻り値になります。
ハッシュ関数は「入力に対応する適当な値(適当に見える値)を返してくれる関数」です。
例えば「愛媛みかん」を入れると「3」が返ってきます。
「青森りんご」を入れると「4」が返ってきます。
「栃木苺」を入れると「とちおとめ」が返ってきたりします。
何を入れると何が返ってくるか、入れたものからは分かりません。
返ってくるのは適当な値です。
ただし、同じものを入れれば、必ず同じ値が返ってきます。
「愛媛みかん」を入れると、必ず「3」が返ってきます。
何回入れても「3」が返ってきます。
1.適当な値が返ってくる
2.同じ入力に対しては同じ値が返ってくる
というのがハッシュ関数の特徴です。
※話を単純化するために「適当な値」という表現を使っていますが、実際には適当では ありません。入力されたデータを「特定のルールに沿って」ぐちゃぐちゃにした値が返ってきます。
以上を踏まえて
ハッシュ関数の別の呼び名
が「メッセージダイジェスト関数」です。
「ハッシュ関数」と「メッセージダイジェスト関数」は同じものだと思ってください。
ハッシュ関数の戻り値は「ハッシュ値」と言います。
ハッシュ値を指して「メッセージダイジェスト」と呼んだりもします。
「ハッシュ値」と「メッセージダイジェスト」は同じもの(ハッシュ関数の戻り値)を指す用語です。
「ハッシュ値」を返す関数だから「ハッシュ関数」なのでしょう。
「メッセージダイジェスト」を返す関数と解釈すれば「メッセージダイジェスト関数」になります。
よって「ハッシュ関数」と「メッセージダイジェスト関数」は同じものを指す用語です。
ちなみに、今回調べていたら、ハッシュ関数そのものを指して「メッセージダイジェスト」と表現している人がいました。
「メッセージダイジェスト関数」の省略表現なのかもしれませんが、個人的には少しだけ違和感があります。
私の理解では
メッセージダイジェスト関数:関数
メッセージダイジェスト:(メッセージダイジェスト関数からの)戻り値
です。
「メッセージダイジェスト」と言われると、メッセージダイジェスト関数から返ってくる値(=ハッシュ値)を想像します。
……とかいいつつ、私は「メッセージダイジェスト(関数)」という表現を、ほとんど使いませんけどね。
「ハッシュ関数」&「ハッシュ値」派です。
一言でまとめるよ
まぁ「メッセージダイジェスト関数」って単語が出てきたら「ハッシュ関数
(入力されたデータをもとにして作った適当な値を返してくれる関数)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「message(メッセージ)」の意味は「伝言」とか「伝達」とか「連絡」とかです。
「digest(ダイジェスト)」の意味は「要約」とか「要約する」とかです。
「関数」は日本語ですね。
何となく くっつけると
伝言を要約する関数
となります。
■検索してみる?






