Help us understand the problem. What is going on with this article?

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

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

ハッシュ関数って?


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



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

sha1関数

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

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

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

sha1の脆弱性

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

G2sSa
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした