「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

MD5チェックサム

pointこの用語のポイント

pointMD5から戻ってくる値だよ

point加算方式のチェックサムとは関係ないよ

スポンサーリンク

簡単に書くよ

MD5チェックサム(読:エムディー5チェックサム 英:MD5 checksum)とは

ハッシュ関数(入力されたデータをもとにして作った適当な値を返してくれる関数)のMD5から返ってくる値のこと
です。
専門用語が大丈夫な方は

MD5関数からの戻り値(プログラムや関数から出てくる値)のこと
と理解してください。


image piyo

詳しく書くよ

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

ハッシュ関数は「入力に対応する適当な値(適当に見える値)を返してくれる関数」です。

例えば、ハッシュ関数に「愛媛みかん」を入れると「3」が返ってくるとしましょう。
同じように「青森りんご」を入れると「4」が返ってきます。
「栃木苺」を入れた場合は「5」が返ってきます。

MD5チェックサム

ハッシュ関数は同じ物を入れれば必ず同じ値が返ってきます。

「愛媛みかん」を入れた場合に返ってくるのは、必ず「3」です。
何回入れても「3」が返ってきます。
「4」が返ってくることは ありません。

MD5チェックサム2

このような関数がハッシュ関数です。
ハッシュ関数には

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


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

さて、そんなハッシュ関数ですが、世の中に1つしかないわけでは ありません。
いろいろ あります。

例えば、返してくれる値(適当な値)の作り方が違ったりですね。
あるいは、返してくれる値の桁数が違ったりですね。
一口に「ハッシュ関数」と言っても、いくつかの種類があるのです。

MD5は、そんな、いろいろあるハッシュ関数の中のひとつです。
MD5に対して何かを渡すと、適当な値が返ってきます。

MD5チェックサム3

以上が予備知識です。

ここまで踏まえて、MD5から返ってくる適当な値が「MD5チェックサム」です。

MD5チェックサム4

注意点として「MD5」+「チェックサム」で「MD5チェックサム」……ではありません

単に「チェックサム」と言った場合、一般的には、送るデータを全部足した値をくっつけてやるチェック方法を指します。
簡略化して説明しますが、例えば

1234

というデータを送るときに「1+2+3+4」の計算結果である

10

も一緒に送ってやるチェック方法です。
※この値自体を「チェックサム」と呼ぶこともあります。

受け取り側は自分で「1+2+3+4」を計算してみます。
その結果「10」になれば「うん、途中で壊れたり変更されていないね」と判断できる理屈です。

これがチェックサムの仕組みですが、MD5チェックサムとチェックサムの仕組みは関係ありません。
役割は似ていますけどね。

そのため、MD5チェックサムを「MD5」+「チェックサム」で理解すると、どこかで詰まる可能性があります。
素直に「MD5チェックサム」一塊で「MD5から返ってくる値」と理解してください。


image piyo2

一言でまとめるよ

まぁ「MD5チェックサム」って単語が出てきたら「MD5から返ってくる値なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像048
書籍画像068

おまけ

■訳してみるよ

「MD5」は「Message Digest Algorithm 5(メッセージ・ダイジェスト・アルゴリズム・ファイブ)」の略です。
「message(メッセージ)」の意味は「伝言」とか「伝達」とか「連絡」とかです。
「digest(ダイジェスト)」の意味は「要約」とか「要約する」とかです。
「algorithm(アルゴリズム)」の意味は「算法」とか「演算法」とかです。
「問題を解くための一連の手順」のような意味みたいですね。
「5」は数字ですね。
「check(チェック)」の意味は「調べる」とか「確かめる」とかです。
「sum(サム)」の意味は「合計」とか「総量」とか「金額」とかです。
何となく くっつけると

伝言要約手順5の合計を調べる

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
つくって、壊して、直して学ぶ Kubernetes入門
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 脆弱性が生まれる原理と対策の実践