日々の学習を忘れないように記録をつけています。
ハッシュ関数って?
ハッシュ関数は、「ある引数を渡すしたら、でたらめな値を返す関数」です。 このとき、返される値をハッシュ値と呼びます 返ってくる値はでたらめですが、同じ値を渡すと必ずそれに対応した 同じ値が返ってくるという特徴があります。 ハッシュ化には、hash関数、md5関数、sha1関数、password_hash関数がよく用いられます。暗号化とすこし似ていますが、仕組みは異なるようです。 ハッシュ化は不可逆な変換で、元のデータへの復元ができないのに対して、 暗号化は適切な鍵を使うことで元データを復元することができます。
sha1関数
sha1関数は、16進数・40文字のハッシュ値を生成するハッシュ関数です。qiita shal1.php
$str = "yahhooo";
$number = sha1($str);
第一引数で入力文字列、
第二引数で返り値の形式を指定できます。
sha1の脆弱性
sha1は便利な関数である反面、脆弱性が知られています。
2017年、googleは2つの異なるファイルを使って同じハッシュ値の生成する
“衝突実験”に成功しました。
sha1衝突が悪用されれば、ハッシュ値に依存するシステムで、
ファイルを不正なものに入れ替えられる可能性があるとのこと。
現在ではよりハッシュ値の長いsha2の利用が推奨されています。