PHP5.5使用Bcrypt加密密码, 加强安全性

摘要:PHP5.5使用Bcrypt加密密码, 加强安全性...

作者:LoveCode标签:PHP5.5,Bcrypt,加密密码,加强安全性

在php5.5中,加入了一个新的密码哈希函数,可使用Bcrypt轻松实现加盐的安全密码。

bcrypt和其他对称或非对称加密方式不同的是,不是直接解密得到明文,也不是二次加密比较密文,而是把明文和存储的密文一块运算得到另一个密文,如果这两个密文相同则验证成功。

官方手册在这里: http://cn2.php.net/manual/zh/book.password.php


password_hash() —-加密密码

第一个参数:需要加密的密码

第二个参数:密码算法常量 (http://cn2.php.net/manual/zh/password.constants.php)

第三个参数:数组类型。支持两个选项:salt在散列密码时加的盐(干扰字符串)。cost用来指明算法递归的层数。


生成密钥:

$hash = password_hash('password',PASSWORD_BCRYPT,['cost' => 10]);
echo $hash;

上面代码每次运行生成的密钥不同,大致效果如下。

$2y$10$bWNfw6QbjmjyCDBc9lrZRuBjraxBzN7eAuozS6D3r4QxJn0tgXRwe

生成的密钥长度为60位,所以设计数据库的时候需要注意。


验证密钥:

$hash = '$2y$10$bWNfw6QbjmjyCDBc9lrZRuBjraxBzN7eAuozS6D3r4QxJn0tgXRwe';
$res = password_verify('password',$hash);
var_dump($res);


由于此加密方法运算很慢.  所以破解的运算相对也慢. 也就是说破解的时间要比其它算法长...

举个例子:

本来破解1天可以搞定, 现在需要1年才可以破解.

安全性也就相对提高了.


CopyRight © 2017 荒山本的官方网站 粤ICP备16049175号 All Right Service 网站地图(xml) 网站地图(html)