【问题标题】:Character/length restrictions on passwords?密码的字符/长度限制?
【发布时间】:2012-12-22 17:40:56
【问题描述】:

我看到很多知名网站和网络应用程序对密码都有看似荒谬的限制。是否有任何正当理由对密码进行字符限制?更具体地说,常见的(如 [shift]+[number key])标准 ASCII 单字节字符?如果长度要求异常小(5 - 8 个字符)怎么办?

我能想到的唯一技术原因是密码是否以纯文本形式存储,而不是至少以某种方式被混淆/散列。还有其他我没有考虑过的不那么令人担忧的原因吗?

注意:我希望得到一些客观的答案,并希望避免深入研究这个主题的主观方面的诱惑。我对为什么有必要进行此类限制的真实/具体技术原因更感兴趣。

【问题讨论】:

  • security.se上有几个或相关的问题123
  • 我唯一能看到密码长度限制有意义的情况是,当密码用于“请给我们密码中的第 5 个字符”样式问题时 - 您必须分别对每个字符进行哈希处理,因此搜索空间将受到严格限制。但是对于这样的系统,我通常会推荐两个单独的密码——一个是散列的,一个用于位置挑战

标签: database security passwords


【解决方案1】:

有时,网站所有者希望避免在使用某些键盘/操作系统上无法重现的外来字符时出现用户问题。请记住,您并没有真正看到您的密码,因此您输入的内容很可能不是您的意思。想想大写锁定。出于同样的原因Facebook is very relaxed wrt. character case in passwords

密码长度的下限显然是出于安全原因。密码越短,破解所需的时间(指数级!)就越少。

我不明白为什么网站对密码长度有上限。毕竟它们都经过哈希处理和加盐处理,所以所有密码都在数据库中占据完全相同的空间......

【讨论】:

    【解决方案2】:

    说它们以纯文本存储与某些地方限制这些字符的原因无关,以纯文本存储是一个不同的问题。最常见的原因是底层操作系统无法处理这些“特殊”字符,业务升级缓慢。混淆的作用很小。无论是他们使用的软件还是他们的团队创建的软件,这几乎总是一个限制。

    我认为 Windows 2000 和更早版本不支持长度大于 8 的密码(我可能在那个数字上错了)

    【讨论】:

    • Windows 2000 使用的 NTLM 密码限制为 14 个字符。见myth #3
    猜你喜欢
    • 2018-09-30
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    相关资源
    最近更新 更多