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

ハッシュ

pointこの用語のポイント

point「ハッシュ〇〇」の略だよ

point「ハッシュ関数」とか「ハッシュ値」とか「ハッシュ化」とか「ハッシュテーブル」とか「ハッシュ記号」とかを指しているよ

point実際に何を指しているかは文脈から判断してね

スポンサーリンク

簡単に書くよ

ハッシュ(英:hash)とは

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

ハッシュ関数から返される値で、元のデータをあれやこれやして作られた一見すると適当に見える値である「ハッシュ値」の省略表現。
あるいは

値をハッシュ関数に入れてハッシュ値に変換することを意味する「ハッシュ化」の省略表現。
あるいは

キーと値のペアで管理するデータ構造である「ハッシュテーブル(ハッシュ表)」の省略表現。
あるいは

文字の「#」を指す「ハッシュ記号(ハッシュマーク)」の省略表現。
あるいは

パッと思いつかないけど他にも何かあるかもね、ということで、とりあえず何らかの「ハッシュ〇〇」の省略表現
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

関数
ハッシュ関数
ハッシュ値
ハッシュ化
ハッシュテーブルハッシュ表
ハッシュ記号ハッシュマーク


について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

関数は「何かを入れると何かをやって何かを返してくれる、処理のまとまり」です。
一般的には、入力を受けて処理をやり、その結果として出力があります。

ハッシュ

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

ハッシュ2

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

ハッシュ3

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

ハッシュ4

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

ハッシュ5

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

ハッシュ6

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

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

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


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

ハッシュ値は「ハッシュ関数から返ってくる値(戻り値)」です。
入力されたデータをもとにして作られた適当な値(適当に見える値)です。

ハッシュ7

ハッシュ値には

1.ハッシュ値から元のデータを特定するのは、ほとんど無理
2.元のデータが同じなら生成されるハッシュ値も同じ
3.元のデータが変わると生成されるハッシュ値は(ガッツリと)変わる


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

ハッシュ8

ハッシュ化は「値をハッシュ関数に入れてハッシュ値に変換すること」です。
そのまんまと言えば、そのまんまですね。

ハッシュ9

ハッシュテーブルハッシュ表は「キーと値のペアで管理するデータ構造」です。

例えば、そうですね。

箱があります。

ハッシュ10

中にミカンを3つ入れます。

ハッシュ11

箱に「愛媛みかん」という名札を付けます。

ハッシュ12

これで「愛媛みかん」という名札と「ミカン3つ」が関連付きましたよね。
「愛媛みかん」という名札を探せば、中身の「ミカン3つ」を見つけられます。

このときの名札「愛媛みかん」を専門用語で「キー(key)」と言います。

ハッシュ13

中身の「ミカン3つ」は「値(value)」と言います。

ハッシュ14

このような「キーと値をセットで管理するデータ構造」がハッシュテーブル(ハッシュ表)です。

ハッシュ15

ハッシュ記号ハッシュマーク文字の「#」です。
日本語では「いげた」と呼ばれたりします。

ハッシュ16

以上を踏まえて

何らかの「ハッシュ〇〇」の省略表現

が「ハッシュ」です、多分。

ハッシュ17

例えば「値をハッシュに入れて~」であれば「値をハッシュ関数に入れて~」と言いたいのでしょう。
「この関数からはハッシュが返ってくるから~」であれば「この関数からはハッシュ値が返ってくるから~」ですかね。
「データはハッシュで管理しよう」であれば「データはハッシュテーブルで管理しよう」だと思います。

「ハッシュ〇〇」という用語は、たくさんあります。
何を意図して「ハッシュ」と言っているかは文脈から判断してください。


image piyo2

一言でまとめるよ

まぁ「ハッシュ」って単語が出てきたら「『ハッシュ〇〇』の略なんだろうな~」と お考えください。

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

おまけ

■訳してみるよ

「hash(ハッシュ)」は「ハッシュドポテト」の「ハッシュ」です。
意味は「切り刻む」とか「細切れにする」とか「薄切りにする」とか「寄せ集め」とか「ごちゃまぜ」とかです。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
エンジニア育成現場の「失敗」集めてみた。 42の失敗事例で学ぶマネジメントのうまい進めかた
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
実務で役立つ ログの教科書 基礎知識から収集方法・分析手法・トラブルシューティング・パフォーマンス最適化・機械学習での活用まで