0

我听说在数据库中以纯文本形式存储密码是不好的,所以我正在寻找一种安全的方式来存储通行证作品。我做了一些研究并有一个工作示例。

$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 = 从数据库传递 $enteredpass = 从登录传递 $hash = crypt($password,$enterdPass ); if($enterdPass == $hash) // 输入的密码正确

我不是在寻找有史以来最好的散列,只是足以作为一家小公司或其他东西在互联网上发布的东西

4

1 回答 1

3

PHP 从 5.5 版本开始就有一个很好的密码哈希 API,并且它已被向后移植以与从 5.3.7 开始的版本一起使用。

查看文档和您可以使用的库。

与您当前的解决方案相比,它的优越功能是如果您决定稍后使用更好的算法或改进的设置,则允许升级密码哈希。

例子:

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

$true === password_verify('rasmuslerdorf', $store_this);
于 2013-09-14T01:17:23.067 回答