好的php mysql密码哈希

时间:2013-09-14 00:50:41

标签: php mysql encryption

我听说在数据库中以明文形式存储密码是不好的,所以我正在寻找一种很好的安全方式来存储传递工作。我做了一些研究,并有一个工作的例子。

$cost =10;
$salt =strtr(base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM)), '+', '.');
$salt = sprintf("$2a$%02d$",$cost).$salt;
$hash = crypt($password,$salt);

$ hash是保存到数据库中的最后一个字符串。要获得哈希密码,我有     // $ password =从登录时通过DB $ enterpass =传递     $ hash = crypt($ password,$ enterdPass);     if($ enterdPass == $ hash)//输入的密码是正确的

我不是在寻找有史以来最好的哈希,只是作为一家小公司或其他东西在互联网上出售的东西

1 个答案:

答案 0 :(得分:3)

从版本5.5开始,PHP有一个很好的密码散列API,并且它已被反向移植以用于从5.3.7开始的版本。

查看您可以使用的documentationlibrary

与当前解决方案相比,它的优势在于,如果您决定在以后使用更好的算法或改进的设置,则允许升级密码哈希值。

示例:

$store_this = password_hash("rasmuslerdorf", PASSWORD_DEFAULT);

$true === password_verify('rasmuslerdorf', $store_this);