PHP password_hash()加密算法
初识 password_hash()是因为要做一个分享注册的项目,为了减少注册时的时间,密码长度要求不高,这样一来md5加密虽然可以使用,但是安全性不高,然后就改用了password_hash()
password_hash()会产生一个字符串,称之为哈希值,并且每一次产生的哈希值都是不相同的
password_hash()要求PHP版本必须是5.5以上,使用也比较简单
语法:
password_hash (password,PASSWORD_BCRYPT,options );
password 是需要加密的密码,是必须的值
PASSWORD_DEFAULT 是默认的加密算法,而我习惯用PASSWORD_BCRYPT,这两种加密算法产生的哈希值区别在于前一种的长度会随着PHP加入更高强度的算法而改变,后一种则是60个字符的字符串
options: 一个包含有选项的关联数组。
目前支持两个选项:salt,在散列密码时加的盐(干扰字符串),以及cost,用来指明算法递归的层数。
省略后,将使用随机盐值与默认 cost。
校验密码的时候则使用password_verify()函数
语法:
password_verify (password , hash );
password 是需要校验的密码
hash 是存储的用password_hash()创建的哈希值
使用password_hash()校验返回的值只有true或者false
如下
if (password_verify (password , hash )){
echo “密码正确”;
}else{
echo “密码错误”;
}