使用PHP password_hash()加密,不怕被拖库了

2022年12月30日 1589点热度 0人点赞 0条评论

现在很多人喜欢用md5或md5+salt加密密码存储在数据库中,从技术的角度来说,MD5真的安全,因为MD5是不可逆的,没办法解密,除了撞库这样的方式。关于撞库简单来说就是通过建立大型数据库,将常用的各种句子密码等加密成为密文,并存储在数据库中;然后拿着密文到数据库网站查询,就有可能查到密码。

但在PHP中有更好的密码存储方式:Password Hashing,主要用到了4个函数:

//查看哈希值的相关信息
array password_get_info (string $hash)

//创建hash密码
string password_hash(string $password , integer $algo [, array $options ])

//判断hash密码是否特定选项、算法所创建
boolean password_needs_rehash (string $hash , integer $algo [, array $options ] 

//验证密码
boolean password_verify (string $password , string $hash)
$password = '123456'; // 原始密码
$hash_password = password_hash($password, PASSWORD_BCRYPT); // 使用BCRYPT算法加密密码
// 密码类似:$2y$10$pVr9/OmhZfxWb6hA7iPxTezrhF8zhijECmjXOS.uX1xLK9X1mJ4GO
if (password_verify($password , $hash_password)){
   echo "密码匹配";
}else{  
   echo "密码错误";
}

通过password_hash加密后的密码,使用字典方式很难破解,因为每次生成的密码都是不一样的,破解这种加密只能采用暴力破解。加密方法再好,原始密码设置的过于简单都容易被破解,设置复杂的密码才是王道。

路灯

这个人很懒,什么都没留下

文章评论