|
|
1
0
使用PHP函数
参见PHP手册 password_hash 和 password-verify .
返回散列密码,失败时返回FALSE。
如果密码和哈希匹配,则返回TRUE,否则返回FALSE。 示例代码:
在您的示例中,您从数据库中获取该用户名的密码哈希,并将其保存在名为
|
|
|
2
0
考虑这样的情况,密码只是作为其哈希存储。任何阅读数据的人都会很难弄清楚密码到底是什么,但这并非不可能,事实上,在线数据库包含大量索引哈希和相应的明文——只需查找常用密码的哈希即可。此外,如果两个用户有相同的散列,也就是说任何读取数据的人都会知道他们有相同的密码。 这两个问题都是通过添加随机字符串(称为 salt 到明文。这个salt只生成一次,然后与密码一起存储。 因此,您存储的数据是$6$[salt]$[hash of(salt+password)] 为了验证密码,您可以使用存储的salt和提供的密码重新创建哈希,并将其与存储的哈希进行比较。crypt函数忽略salt之后的任何数据,因此只需执行以下操作:
您正在使用的代码在其salt派生中具有非常低的熵-这可能适合大多数用途,但在高度安全的上下文中不适用。 |