![]() |
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派生中具有非常低的熵-这可能适合大多数用途,但在高度安全的上下文中不适用。 |
![]() |
hello_programmers · Mysql从其他表输出一列 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
|
Kugelfisch · 用php为数据库加密数据 1 年前 |