ハッシュ値
数値や文字列のデータをハッシュ関数によって一定の長さに変換した値。
ハッシュ関数とは擬似乱数を生成する一方向関数で、ハッシュ値の逆算や偽造は極めて困難とされる。
ハッシュ値の主な特徴は次のとおりです。
- 一方向性)ハッシュ値から元のデータを復元することは極めて困難
- 衝突耐性)異なるデータから同じハッシュ値が生成される(衝突)可能性が非常に低い
- 高速性)大きなデータでも短時間でハッシュ値を計算できる
ハッシュ値は次のような場面で広く利用されています。
- データの改ざん検出)ファイルやメッセージのハッシュ値を比較することで、内容が変更されていないか確認できる
- パスワード管理)パスワードをハッシュ化して保存することで、漏洩時のリスクを軽減
- 電子署名)データの整合性や履歴の保証に利用される
代表的なハッシュ関数には、SHA-256、SHA-1、MD5などがあります。
- 例1: 短い文字列のハッシュ値
元のデータ(文字列): hello - この文字列をSHA-256でハッシュ化すると、以下のようなハッシュ値が得られます:
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 - 元の文字列が短くても、ハッシュ値は固定長(SHA-256では64文字)になります。
このハッシュ値は「hello」という文字列に特有のもので、他の文字列では異なる値になります。 - 例2: 異なるデータのハッシュ値
元のデータ(文字列):Hello(最初の文字が大文字) - この文字列をSHA-256でハッシュ化すると、以下のようなハッシュ値になります:
185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969 - 先ほどの「hello」とは異なるハッシュ値になっています。
たった1文字の違いでも、ハッシュ値は大きく変わります。
引用元・参考文献
-
出典:用語集 電子認証局会議
https://www.c-a-c.jp/vocabulary.html

