2012-01-05 37 views
1

我应该使用像-ZA-Z0-9密码模式,还要求每个字符类的至少一个的密码,或者干脆让密码中的什么吗?密码的竞争格局

网站允许用户使用他/她的密码是什么?还有什么我应该考虑的吗?

+1

**没关系,误解的问题** - 什么是密码?你期望什么类型的用户?应该设置密码要求以最好地为使用密码的人提供服务。我期望一个网上银行的网站比我的论坛,例如更高的限制。 – Hecksa 2012-01-05 16:38:21

+2

我希望能够使用一个密码,比如'EA @#@#Σåß∂'! - 不要把它标记为不安全的,因为它没有一个' - ZA-Z0-9'。 – 2012-01-05 16:41:56

+0

在正则表达式,行话说到:''/^[A-ZA-Z] [A-ZA-Z0-9 _ @#$%^&*()。] {10,25} $ /''你可以让你的用户创建一个以字母开头的密码,然后是一些可接受的字符,然后请求至少10个字符和最多25个字符 – Nonym 2012-01-05 16:44:52

回答

5

a-ZA-Z0-9过度受限。你应该让我使用任何字符,执行最低要求(即至少8个字符,至少一个字母和一个数字)

+1

至少有一个标点符号!但+1。 – 2012-01-05 16:38:10

+0

@Iarsmans我通常会包括一个标点符号要求,是的,但是如果他提出的是对客户来说可能过于严格的-ZA-Z0-9。 – ceejayoz 2012-01-05 16:42:28

+0

我不知道'a-Z'是否按预期工作:) – 2012-01-05 16:46:50

2

应该有任何限制,用户应该能够使用什么。由于在存储密码之前你会对密码进行哈希(我希望),这对密码包含的内容没有任何影响。

如果您设置了要求,它们应该是最低要求。

-1

最少8个字符,优选12

至少一个数位,至少一个下壳体,至少一个上的情况下,至少一个符号(* /%...)

+0

我不认为这些可以被视为全球要求。不同的用例需要不同的最低要求。 – ceejayoz 2012-01-05 16:43:14

1

密码正则表达式模式

((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20}) 

击穿

(      # Start of group 
    (?=.*\d)    # must contains one digit from 0-9 
    (?=.*[a-z])   # must contains one lowercase characters 
    (?=.*[A-Z])   # must contains one uppercase characters 
    (?=.*[@#$%])   # must contains one special symbols in the list "@#$%" 
       .   #  match anything with previous condition checking 
       {6,20} #  length at least 6 characters and maximum of 20 
)      # End of group 

相关:

+1

永远不要强制执行最大密码长度。 – ceejayoz 2012-01-05 16:47:40

+0

这只是一个例子,可以做什么 – 2012-01-05 16:48:32

3

密码熵

一个好的密码的测试是不是字符集的代表,但数量。

熵测试: Dropbox的人已经把这个神奇的工具称为zxcvbn做到这一点。我会强烈推荐阅读他们的write-up explaining it here

简要说明:因为他们一起提高密码的熵(长度做到这一点远比虽然字符类更快),但用户则倾向于两个字符类(小写,大写字母,数字和特殊字符)和长度都很重要朝向降低熵的可预测模式。

这可能是幽默,但它有益说明了这一点的一部分: http://xkcd.com/936/enter image description here

+0

我觉得我最近在博客上看到过这个......最近lol :) – Skuld 2012-01-05 17:11:04