为什么当我们在Facebook和Gmail这样的网站注册时,我们的密码必须长度为8-12个字符,或者其他一些上限? 8-12个空格是有限的,但是你可以通过添加大写字母和数字来使你的密码更加“安全”。
看起来Gmail密码上限为100个字符(截至2017年9月14日):

我认为我们的密码长度被限制的真正原因是合法性问题,而不是密码效率上的任何缺陷。如果公司需要访问您的帐户,他们将访问您的帐户,不希望有任何障碍这样做。一开始,我认为他们对密码设置了上限,因为如果他们在服务器上存储长度较长的密码,那么他们的驱动器上就会耗尽空间,但是像密码这样的字符值不会占用太多空间,毕竟它只是一堆字母和数字。也许带有HMAC的PBKDF2可以破译任意长度的密码,但这样做会增加CPU处理时间以及驱动器上的空间(很长的密码可能在1GB左右)。
拥有非常大的数据中心的公司是否能够同时对其平台的所有用户进行散列?
密码的上限是12 (或者Gmail的密码是100,因为Google有足够的钱在系统上轻松地容纳100个字符),因为密码密钥派生功能技术目前还不能有效地破译长度更长的密码。这意味着,如果你想让你的密码长250个字符,你不会被允许这样做,因为公司觉得如果他们需要高效地破解你的密码,它就没有能力破解你的密码。
我们真的自由了吗?如果对我们的安全设置了上限,我们有什么理由使我们的密码比“密码”或"12345678“更安全?他们传达的信息似乎是,你可以安全,但不安全,这使我们的工作更加困难。
一个锁可以阻挡大多数入侵者,但是那些装备了破解锁的人会这样做。我们是选择能阻挡入侵者的锁,还是买普通的锁,希望能破解的锁不会从我们的房子里来?
通过增加大写字母和数字使我们的密码更加安全,我们开始限制能够破解密码的人的数量,但如果人们愿意的话,他们仍然会破解密码。
发布于 2017-09-14 17:23:12
如果你不介意我直言不讳的话,我认为你的帖子中有很多误解,你的很多结论似乎都是基于阴谋论的假设。首先,让我们澄清几件事,我认为这足以消除你的一些假设和阴谋论:
因此,你的一般说法,公司有密码长度最大,因为这允许他们破解你的密码时,他们想,毫无例外,完全错误。
那么为什么有最大值呢?这个问题讨论了许多遗留系统:
Google是另一回事:100个字符的上限并不是不合理的。我怀疑有人试图使用100个字符的密码,甚至密码管理器也不使用(因为100个字符绝对是过头了)。他们的密码算法可能有技术上的原因,最多需要100个字符,但这很可能是一个任意的限制,因为需要一些限制,而且从一开始就没有实际的理由有这么长的密码。
再重申一点,密码的长度有一个物理限制,实际上可以强制使用。这可以归结为能源方面的考虑,以及运行能够破解密码的计算机所需的最低能耗。它的总体要点是,在足够长的时间内,世界上没有足够的能量破解密码,即使您有无限的计算资源可以解决这个问题:
https://www.reddit.com/r/theydidthemath/comments/1x50xl/time_和_能量_必填项_至_蛮力_一个_美学256/
对你来说也很好的阅读,以帮助你真正理解密码长度的一些问题:
https://www.infoworld.com/article/2655121/security/password-size-does-matter.html https://security.stackexchange.com/a/118457/149676 https://crypto.stackexchange.com/questions/1145/how-much-would-it-cost-in-u-s-dollars-to-brute-force-a-256-bit-key-in-a-year https://www.reddit.com/r/theydidthemath/comments/1x50xl/time_和_能量_必填项_至_蛮力_一个_美学256/
发布于 2017-09-14 17:44:16
因为“易用性、功能性和安全性三角”

我们只是停留在易用性和安全性上,因为功能并不意味着要增加密码的大小(就像google一样,google的图像限制为100 --这是一个过分的IMHO)。自从上世纪80年代中期以来,互联网一直为普通民众所用,安全密码的概念就是“你知道什么?”
是的,一个密码可能有100000个字符长(注意:一个输入的默认最大大小是524288长度),在今天的大多数实现中,它仍然无法破解它,谁还记得一个20个密码长度呢?也许是100英镑?也许你能记住一个很长的句子。没有人会用“堂吉诃德”的第一章作为密码,人类的记忆也没那么好。
当然,也许您可以存储它或使用类似"LastPass“之类的东西,但这并不适合普通/日常用户。
增加最大值并不能持续增加安全性,在某种程度上,它开始消除“易用性”,并没有增加多少“安全性”。
发布于 2017-09-14 17:01:09
简单回答:懒散的程序员很难实现密码存储。
更长的答案:网站需要互操作的遗留密码系统,这些系统不懂散列,必须使用纯文本密码,但有限制。
此外,还有一个可用性问题。许多最终用户不使用密码管理器,当用户需要重置密码时,运行支持行对业务来说是一种成本。在某些方面“限制”用户是符合企业财务利益的,因此他们不会选择一个100个字符的密码,然后错误地输入密码。
一个主要的银行网站,我不会告诉它的用户,它没有告诉它的用户更低的情况下所有的密码幕后(你可以登录任何混合的情况密码,改变情况,它仍然会工作),而其他人将允许你登录电话键盘数字相当于你的密码,因为它共享一个后端系统与电话验证系统。
https://security.stackexchange.com/questions/169472
复制相似问题