LoginSignup
0
0

More than 3 years have passed since last update.

【学習記録(PHP)】ハッシュ化のいろいろ

Posted at

日々の学習を忘れないように記録をつけています。

ハッシュ関数って?


ハッシュ関数は、「ある引数を渡すしたら、でたらめな値を返す関数」です。
このとき、返される値をハッシュ値と呼びます
返ってくる値はでたらめですが、同じ値を渡すと必ずそれに対応した
同じ値が返ってくるという特徴があります。
ハッシュ化には、hash関数、md5関数、sha1関数、password_hash関数がよく用いられます。



暗号化とすこし似ていますが、仕組みは異なるようです。
ハッシュ化は不可逆な変換で、元のデータへの復元ができないのに対して、
暗号化は適切な鍵を使うことで元データを復元することができます。

sha1関数

sha1関数は、16進数・40文字のハッシュ値を生成するハッシュ関数です。

qiita shal1.php
$str = "yahhooo";
$number = sha1($str);

第一引数で入力文字列、
第二引数で返り値の形式を指定できます。

sha1の脆弱性

sha1は便利な関数である反面、脆弱性が知られています。
2017年、googleは2つの異なるファイルを使って同じハッシュ値の生成する
“衝突実験”に成功しました。
sha1衝突が悪用されれば、ハッシュ値に依存するシステムで、
ファイルを不正なものに入れ替えられる可能性があるとのこと。
現在ではよりハッシュ値の長いsha2の利用が推奨されています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0