ハッシュ

IT 

ハッシュ hash (はっしゅ)

あるデータを元にして生成されるデータ。
ハッシュは、一般的に、 nVvdwvmXvtZ0$i7Df8B0yl0Wdu3HBqGQ3qKmof8sMoo7i+ffMRRCaHCc といったような、一見無意味な文字列のようなものになる。

データとハッシュを比較して、「このハッシュ、このデータを元にして生成された ものか」ということを調べることはできる。

一方、生成されたハッシュから元データを復元することは通常極めて難しい。

ハッシュが使われる例のひとつとして、ウェブアプリケーションでのユーザ認証が挙げられる。

アカウント名 user@pc5bai.com のユーザがいたとして、そのユーザは、 hogehoge というパスワードでログインするものとする。

このとき、ウェブアプリケーションのデータベースでは、 アカウント名こそ user@pc5bai.com という値をそのままで保持するが、パスワードは hogehoge のハッシュ(たとえば nVvdwvmXvtZ0$i7Df8B0yl0Wdu3HBqGQ3qKmof8sMoo7i+ffMRRCaHCc といった値)を保存する。

これにより、万が一悪意ある者にデータベースの情報を盗み取られたとしても、データを盗み取ったものは、アカウント名を知ることができたとしても、それと対になるパスワード(この場合は、「hogehoge」)を知ることはできない。

ウェブサービス利用者のうち無視できない割合が複数のウェブサービスで同じパスワードを使い回す傾向にあるということが知られている。
また、悪意を持ってデータベースに侵入する者の動機のひとつは、別のウェブサービスにログインするためのログイン情報を推測するべく、そのウェブサービスでのアカウント名とパスワードとの組み合わせを入手することにあるということも知られている。

しかし、このようにデータベース内ではパスワードをハッシュ値しか保存しないようにしておけば、当該データベースの中身について読み取られてしまうことはあったとしても、少なくとも、その情報は、別のサービスでのログイン情報を推測することには使えない。

掲載用語一覧:

TOPへ(新着順に表示できます)

i18n 
アセンブリ言語  (assembly language)
アンスコ 
イテラブル  (iterable)
イテレート  (iterate)
イミュータブル  (immutable)
インスタンス  (instance)
WSGI 
ウェルノウンポート  (well known port)
API 
SQL 
m17n 
MTVフレームワーク  (mtv framework)
MVCフレームワーク  (mvc framework)
l10n 
LTS 
演算子  (operator)
オブジェクト指向プログラミング  (object oriented programming)
仮想環境  (virtual environment)
関心の分離  (separation of concerns)
git 
github 
キャメルケース  (Camel Case)
クッキー  (Cookie)
クライアント  (client)
クラス  (class)
クラスの継承  (class inheritance)
CRUD 
ケバブケース  (kebab case)
高階関数  (high order function)
コンパイラ  (compiler)
サーバ  (server)
CMS 
JSON 
識別子  (identifier)
辞書  (dictionary)
車輪の再発明  (reinventing the wheel)
シリアライズ  (seralize)
スネークケース  (snake case)
セッション  (Session)
多重継承  (multiple inheritance)
dunder 
ディストリビューション  (distribution)
デシリアライズ  (deserialize)
DRY 
認可  (authorization)
認証  (certification)
パスカルケース  (Pascal Case)
ハッシュ  (hash)
バッテリーインクル-デッド  (battery included)
バリデーション  (validation)
引数  (argument)
ビルトイン  (built in)
フレームワーク  (framework)
プロトコル  (protocol)
ポート番号  (port number)
メソッド  (method)
メンバー  (member)
UUID 
ライブラリ  (library)
LAMP 
リクエストメソッド  (request method)
RESTful 
レンダリング  (rendering)

この用語集はこんな人が書いています