【发布时间】:2010-09-19 19:47:38
【问题描述】:
我不确定密码哈希是如何工作的(稍后会实现),但现在需要创建数据库架构。
我正在考虑将密码限制为 4-20 个字符,但据我了解,加密后的哈希字符串长度会有所不同。
那么,如何将这些密码存入数据库呢?
【问题讨论】:
-
另见 Openwall 的 PHP password hashing framework (PHPass)。它的便携性和强化了针对用户密码的一些常见攻击。编写框架 (SolarDesigner) 的人与编写 John The Ripper 并在 Password Hashing Competition 担任评委的人是同一个人。所以他对密码攻击略知一二。
-
请不要设置密码上限。您正在对它们进行散列,没有上限的存储原因。如果您担心使用密码哈希的 DoS 攻击,1000 或 1024 是一个合理的上限。
-
为什么要限制密码长度?至少让用户创建一个 100 个字符的密码 :)
-
4 个字符对于密码来说是一个非常危险的下限,因为这些密码很容易破解。至少使用 8 但 14 或 16 更好。
-
这是一个非常古老的问题,答案已经过时。请参阅 Gilles answer 了解最新信息。
标签: mysql hash types passwords cryptography