自分もだけど、確かに他の人のコードを見ると、
それぞれ独自にパスワード暗号化、照合用の関数・API組んで
ちょっと複雑な処理で使ってるケースは多いような。
適当なところからsalt拾ってcryptで暗号化…
多くはcrypt、中にはmd5やsha1なんてのも。
The new Secure Password Hashing API in PHP 5.5
$hash = password_hash($password, PASSWORD_DEFAULT);
これだけでハッシュ化終わりか。
saltの生成とかは勝手にやってくれるらしい。
PASSWORD_DEFAULTはアルゴリズム指定、デフォルトはbcrypt。
<?php
// $password from user, $hash from database
if (password_verify($password, $hash)) {
// password valid
} else {
// wrong password
}
照合もこれだけ…楽でいいな。
PHP側が用意するAPIに脆弱性があったら、とは思うものの、
自分で半端なのを用意するぐらいならこっちの方がいいのかな、
問題があれば勝手にメンテナンスしてくれるんだから。
(security fixをちゃんと追うという前提で)
0 comments:
コメントを投稿