ハッシュ生成を行います。
MD2/MD4/MD5/SHA1/SHA2/SHA3のアルゴリズムに対応しています。
ハッシュについて
ハッシュ(Hash)は元になるデータから一定の計算処理を行い出力された固定長の値である。ファイルが正しいか確認する用途や暗号化、認証用途に利用される。
安全なハッシュは?
2020年現在、安全なハッシュはsha2 (256, 512), sha3になります。
sha3の方が後の開発になりますので理由が無い場合は sha3 でいいと考えます。
ハッシュの種類
MD2 (Message Digest Algorithm 2)
1989年にロナルド・リベストが開発した暗号学的ハッシュ関数
このアルゴリズムは8ビットコンピュータ向けに最適化されている。
MD2は安全でないことがわかっているため利用は推奨されません。
MD4 (Message Digest Algorithm 4)
1990年にロナルド・リベストが開発した暗号学的ハッシュ関数
128ビットのハッシュ値を出力する。
脆弱性とハッシュ衝突があるため利用は推奨されません。
MD5 (Message Digest Algorithm 5)
1992年にロナルド・リベストが開発した暗号学的ハッシュ関数
128ビットのハッシュ値を出力する。
脆弱性とハッシュ衝突があるため利用は推奨されません。
sha1 (Secure Hash Algorithm 1)
1995年にアメリカ国家安全保障局が開発した暗号学的ハッシュ関数
このアルゴリズムは160ビット(20バイト)のハッシュ値を生成する。
衝突攻撃の問題から利用は推奨されません。
sha2 (Secure Hash Algorithm 2)
2001年にアメリカ国家安全保障局が開発した暗号学的ハッシュ関数
sha1に改良を加えられている。今までは出力が固定長で強度は長さで決まっていましがた、sha2からはSHA-2はSHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256の6つのバリエーションを持ち、ハッシュ長は224、256、384、512ビットのいずれかに変わりました。
sha3 (Secure Hash Algorithm 3)
2005年に3名の開発者により開発された暗号学的ハッシュ関数
shaとなっているが内部構造は全く異なりKeccak暗号学的ハッシュ関数が元になっている。MD5、sha1の攻撃方法が見つかった事で開発が急がれた経緯がある。
ハッシュ処理は複雑になれば速度が落ちる問題が発生するが sha3 は速度も速く処理できるように対策が行われている。