密码散列算法是
password
扩展,他是PHP核心的一部分,不需要单独安装
这个库是专门对密码做
hash
运算与校验的。
大家都知道,用户注册设置的密码需要存储在数据库,很多老项目都是把密码就行
md5
运算然后存储到数据库表中,但是由于现在计算机硬件性能提升,md5
算法已经不再安全,那么应该用什么算法呢?
对密码进行
hash
运算并校验
<?php
//对密码进行hash运算,算法采用PASSWORD_BCRYPT
$hash = password_hash('jhq23123', PASSWORD_BCRYPT);
//校验密码hash值
$verifyResult = password_verify('jhq23123', $hash);
var_dump($hash, $verifyResult);
以上例程运行结果
string(60) "$2y$10$wqw6FoTl8sYk8r/lvCkvo.nGBRg42OQNFD2BLPt9nfkUnsr7GKgR2"
bool(true)
需要注意的是,每次运行产生的
hash
值是不一样的。
看到这里,我们可以发现,我们如果把密码的hash值存储在数据库中,破解的难度是不是很难了,这也是PHP官方推荐大家使用的密码加密算法。