代码之家  ›  专栏  ›  技术社区  ›  Mark Ingram

为什么要限制密码的长度?

  •  54
  • Mark Ingram  · 技术社区  · 17 年前

    你必须登录网站吗?登录是否出于安全目的(例如购买商品)。您对用户的密码施加了哪些限制(如果有的话)?你做出这个决定的原因是什么?

    8 回复  |  直到 14 年前
        1
  •  104
  •   Welbog    17 年前

    限制密码大小是为了节省存储空间。这几乎表明你的密码被清楚地存储在他们的数据库中,所以他们想限制它的大小。否则,这只是一个限制,因为实现者不知道更好。不管怎样,这都是一个坏兆头。

        2
  •  29
  •   krosenvold    17 年前

    不处理超过给定字符数的遗留系统。

        3
  •  3
  •   Max    17 年前

    长度限制为 可能 由于存储空间问题,但 可能 这是一个非常糟糕的反脚本措施。如果我的银行告诉我我的密码太短,而不是太长,我会更有信心。每当我被告知我的密码太短,或者不允许使用“特殊”字符时,我都会想,“哦,他们一定没有在字典里找到我的密码。。。 ."

    应允许使用任何字符。通过 短语 应该鼓励,而不是气馁。它们比神秘的密码更容易记住,也更难破解,因为它们不在查找表中。

        4
  •  3
  •   Bill the Lizard    17 年前

    一些(设计不佳的)网站有最大密码长度,原因很简单:这是他们数据库中存储密码的全部空间。他们很可能根本没有对其进行散列或处理,这意味着它以纯文本形式存储。像这样的网站我只使用一次,每次都扔掉密码。这是一个糟糕的设计,不幸的是人们仍然在使用它。

        5
  •  2
  •   Robert P    17 年前

    这似乎特别愚蠢,因为任何半正规的网站都不会在数据库中存储明文密码,他们会存储该密码的单向哈希值(根据使用的算法,该哈希值始终是一个设定的长度,例如sha1是一个160位的摘要),然后在登录时重新哈希该密码,以确保新哈希的密码与存储的密码匹配。

    除了前端设计之外,我同意,强制使用最大密码长度没有任何意义。最小长度完全不同,但原因显而易见。

        6
  •  2
  •   mandaleeka    17 年前

    可能是他们用于加密的算法对大密码不起作用,或者他们只有有限的存储空间来存储它。我知道这两个原因都很糟糕,但这是可能的。

    如果我制定密码规则,那只是为了保护用户,比如强迫他们至少使用一个特殊字符和数字,或者混合使用大小写。

        7
  •  1
  •   user85307 user85307    17 年前

    这可能是因为他们以纯文本形式存储您的密码,并试图节省空间,但也可能是为了阻止人们将密码设置得太长,然后忘记密码,这意味着公司必须发送一封包含您密码的电子邮件,这有点麻烦。

        8
  •  0
  •   dwc    17 年前

    此外,该网站根本不应该存储密码,而应该存储加密哈希。由于哈希值是固定大小的,这使得数据库非常简单,存储需求很小。