Bor*_*iev -1 php mysql encryption hash
密码是mySQL数据库应该以散列形式保存
echo password_hash('test', PASSWORD_BCRYPT);
Run Code Online (Sandbox Code Playgroud)
给我们
$2y$10$8PxsFGPbGtgYb44GRPL84ev2T0xR0LXMSSKm7cuSBUbAU114mosFG
Run Code Online (Sandbox Code Playgroud)
要么
$2y$10$E.q3bVE9EE2ce2VaKPJgtuwEMRZxpTYiQR6Mw2dmLGqeKx/PsQY42
Run Code Online (Sandbox Code Playgroud)
要么 ...
但是所有这些$2y$10. . .字符串都很容易被解密回test使用password_verify.
假设某人可以访问哈希密码,那么她将能够使用password_verify ?解密它们?一旦有人拥有字符串,$2y$10$E.q3bVE9EE2ce2VaKPJgtuwEMRZxpTYiQR6Mw2dmLGqeKx/PsQY42他或她就可以轻松地将其转换回纯文本,对吧?那么为什么要使用密码呢?
这个说法
但所有这些都是2美元10美元...使用password_verify可以轻松地将字符串解密回测试.
不是真的.
因为password_hash()是单向散列.
这意味着(实际上)没有办法从散列字符串返回到原始字符串.
password_verify() 不解密哈希(因为它不可能).更简单的是,它会对要验证的密码进行哈希处理,并检查生成的哈希值是否与提供的哈希值匹配.
| 归档时间: |
|
| 查看次数: |
2184 次 |
| 最近记录: |