2012年11月25日

パスワードハッシングAPI

PHP 5.5 は、パスワードハッシング API を搭載へ (japan.internet.com)

自分もだけど、確かに他の人のコードを見ると、
それぞれ独自にパスワード暗号化、照合用の関数・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 コメント:

コメントを投稿