2013-01-08 122 views
0

我看到很多高调的网站和网络应用程序,这些网站和网络应用程序对密码看起来有些荒谬的限制。是否有合法的理由对密码进行字符限制?更具体地说,常见的(如in,[shift] + [number key])标准ASCII单字节字符?非常小的长度要求(5 - 8个字符)呢?密码的字符/长度限制?

我能想到的唯一技术原因是密码是以纯文本而不是至少以某种方式被混淆/散列存储的。还有没有其他不太令人震惊的理由我没有考虑过?

注:我希望有一些客观的答案,并希望避免陷入这个主题的主观方面的诱惑。我更感兴趣的是真正的/具体的技术原因,为什么这样的限制是必要的。

+0

有一对夫妇或security.se [1](HTTP相关的问题://安全。 stackexchange.com/questions/1534/why-do-some-websites-and-programs-restrict-password-characteristics)[2](http://security.stackexchange.com/questions/6287/should-i-have- a-maximum-password-length)[3](http://security.stackexchange.com/questions/22884/my-credit-union-is-reducing-its-maximum-password-length-to-10-characters) – CodesInChaos

+0

我唯一可以看到的密码长度限制是有道理的,当密码被用于“请给我们字符5的密码”样式的问题 - 你必须分别散列每个字符,所以搜索空间会被sev完全受限制。但对于这样的系统,我通常会推荐两个单独的密码 - 一个是散列,另一个用于位置问题 –

回答

1

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

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

我不明白为什么网站有密码长度的上限。毕竟他们都是哈希和盐渍,所以所有的密码都占据了数据库中完全相同的空间......

0

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

我相信Windows 2000和较旧的不支持密码长度超过8时(我可能是错的对数)

+0

Windows 2000使用的NTLM密码限制为14个字符。请参见[神话#3](http://www.symantec.com/connect/articles/ten-windows-password-myths)。 – Steve