ブロックチェーンやビットコインについて調べているとよく出てくる言葉「ハッシュ関数」、「ハッシュ値」について調べた。
「ハッシュ関数」というのは、入力した値に対して、別の値が出力されるものを言う。出力された値のことを「ハッシュ値」と言う。またハッシュ関数は以下のような特徴を持つ。
- 入力が同じ場合、出力は必ず同じ値になる
- 入力が異なる場合、基本的に出力は異なる(※100%ではないらしい)
- 出力値(ハッシュ値)が分かっても、簡単に入力値を逆算することはできない
- 入力値の長さによらず、ハッシュ値は同じ長さになる
4.を補足すると、例えば入力値がab12のとき、ハッシュ値が4958736krieusheksdouというように20文字だとすると、入力値の文字下図が049r8ejhs4fのように変わってもハッシュ値の文字数は同じく94jgdk34u393j33ljlduのように20文字となる。
ハッシュ関数はNIST(米国標準技術局)によって標準化されているものがあり、自由に使うことができる。
例えばこちらのサイトではSHA-256方式でハッシュ値を生成することができる。