ITパスポート

ハッシュ値

任意のデータをハッシュ関数で計算する固定長の値です。

用語解説

ハッシュ値とは、データ(文字列、ファイルなど)をハッシュ関数に入力して得られる固定長の値です。

同じハッシュ関数を使う限り、入力が短文でも長文でも、出力されるハッシュ値の長さは一定です。

元のデータが少しでも変わるとハッシュ値も変化する性質を利用して、同一性確認や改ざん検知に使います。

仕組み

データを入力してハッシュ値を得る流れは次のとおりです。

  • 入力: ファイル、文章、パスワードなどのデータ

  • 計算: ハッシュ関数で計算する

  • 出力: 固定長のハッシュ値

ハッシュ値の重要な性質

  • 固定長の出力です。入力データの大きさに関係なく、ハッシュ値の長さは一定です。

  • 一方向性があるとされます。ハッシュ値から元のデータを復元することは現実的に困難です。

  • 衝突が起こりにくいとされます。異なるデータが同じハッシュ値になる可能性は低いです。

  • 入力がわずかに変わると出力が大きく変わります。例えば1文字の違いでも別のハッシュ値になります。

ハッシュ関数の代表例

ハッシュ関数 出力されるハッシュ値の長さ
MD5 128ビット(32桁の16進数)
SHA-1 160ビット(40桁の16進数)
SHA-256 256ビット(64桁の16進数)