【问题标题】:Is there any advantage to limiting the length of a password if the password is stored as a hash? [closed]如果密码存储为哈希值,限制密码长度有什么好处吗? [关闭]
【发布时间】:2012-07-31 15:51:45
【问题描述】:

我见过很多将密码长度限制为 10 或 12 个字符的网站。我知道这可能表明他们以纯文本形式存储密码并且他们限制了长度,因为他们认为这样可以节省空间,但是如果他们将密码存储为哈希,这个限制有什么好处吗?

编辑:我很清楚更长的密码更强,并且哈希是哈希,无论输入如何,长度都是相同的。我的真正问题是,系统设计人员是否有某种令人费解的理由来合理化这种固有的不安全做法?

【问题讨论】:

  • 有了新的Outlook.com 界面,我突然发现如果我输入超过 16 个字符的 Windows Live 密码,它就会报错。他们是微软,所以我怀疑他们以纯文本形式存储它们。我想唯一的选择是他们一直只对前 16 个字符进行哈希处理......
  • 为什么会限制长度? (除了数据完整性限制,比如 80)请用谷歌搜索“正确的马电池订书钉”,这很好,超过 12 个字符。
  • 我不是说你会限制长度,我是问后端设计师是否有任何令人费解的理由来合理化限制密码长度。跨度>
  • @NickAnderegg 我的“最佳答案”是:尚未纠正的心态。最初可能是由遗留限制或假设引起的。大多数密码仍然有其他 asinine 要求或限制..
  • (我相信“密码”往往是其中的一个子集。无论如何,我必须投票为“不具建设性”,因为我认为没有关于为什么公司/个人/设计师 A 选择限制 X,可以给出无可争议的原因。一篇博士论文可能能够涵盖它..)

标签: database security passwords


【解决方案1】:

要直接回答您的问题,不,故意实施较低的最大长度没有任何好处。您会发现,当存在遗留依赖项时,通常会发生这种情况;您的密码只能是 10 个字符长,因为它是后端到实现此限制的系统。

我怀疑在Tesco's 等场景中就是这种情况。你有 13 岁以上的系统,正如你所说,它(据称)以明文形式存储密码,并且可能有多个点实现了 10 个聊天限制(DB col、SQL 命令参数等)。

我能想到的唯一原因 - 这是一个延伸 - 是没有限制的文本框可以允许超过最大请求长度,但我们在这里谈论的是可笑的长密码。

【讨论】:

    【解决方案2】:

    哈希函数接受一个未指定长度的输入,并返回一个指定长度的值。所以不,输入的长度对输出的长度没有影响,因为对于给定的哈希函数,输出的长度总是相同的。

    为用户可以使用的密码长度设置下限只是为了鼓励用户使用更强的密码。上限,我不能说。可能是针对垃圾邮件机器人的东西,或者出于性能原因,他们不想破解 200 个字符的密码。

    没有人以明文形式存储密码。

    【讨论】:

    • 不,但有时他们以可逆格式存储密码。
    • “没有人”是指除了那些这样做的人。因为我在现实生活中见过。
    • @DaveNewton 这让我很伤心。它显示了对密码实际上是什么的根本误解。
    • 我会说一旦密码以纯文本形式存储,它就不再是密码了。
    • 人们不会以纯文本形式存储密码吗?我很想生活在人们真正知道如何设计安全系统的平行宇宙中。我实际上试图入侵那个平行宇宙,但密码被散列了。
    【解决方案3】:

    没有。如果他们在现实生活中以纯文本形式存储它,也没有多大优势。

    【讨论】:

    • (最好提供一个拒绝投票的理由,IMO,这样可以改进 SO,而不仅仅是一个报复性的游乐场。)
    猜你喜欢
    • 2012-01-08
    • 2010-12-08
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 2020-01-11
    • 2010-10-16
    • 2011-03-03
    相关资源
    最近更新 更多