这听起来像是一个无聊的问题,但安全领域的人会明白这一点。我是否应该让用户输入任意数量的字符,只要它大于 0 个字符。我的逻辑是:
- 密码无论如何都会被散列和加盐,并且
- 对于做彩虹 table 的人来说,没有任何长度/其他指导方针会更有趣,但是
- 我担心的是暴力字典攻击。
我的做法是否正确?
既然问的是下限问题,那还不如问一下上限?同样,它将被散列和加盐,因此数据库大小不是问题。那么在这种情况下,我唯一能想到的问题就是缓冲区,对吧?
更新给那些迟到的问题
所以普遍的共识似乎证实了我最初的想法,即暴力破解的风险增加了。然而,RT cracker 的工作不会因为他们没有关于大小的线索而变得那么困难。事实上,这可能会变得更容易,因为无论如何它们都是从较低的字符表开始的。正确的? (更不用说现在已经出现的非技术问题,如越过某人的肩膀等等,这对于更长的密码来说并不是一个大问题。)
所以结论是:即使你对密码进行哈希/加盐,短密码仍然存在风险
然而,对于长密码,我不确定我是否有一个决定性的答案?我是否应该担心缓冲区溢出,毕竟它仍然是一个常规输入字段。
最佳答案
这将使攻击者只有 1296 个选项来猜测特定用户的密码。
关于php - 我应该允许 2 个字符的密码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1602880/