我应该使用像a-zA-Z0-9这样的密码模式,并且还需要密码中的每个字符类中的至少一个,或者只是允许密码内的任何内容?
网站允许用户使用什么作为他/她的密码?还有什么我应该考虑的吗?
答案 0 :(得分:5)
a-ZA-Z0-9过于有限。您应该让我使用任何字符,并强制执行最低要求(即至少8个字符,至少一个字母和一个数字)
答案 1 :(得分:3)
良好密码的测试不是所代表的字符集数量,而是熵。
测试熵: Dropbox的人们已经将这个名为zxcvbn的奇妙工具组合在一起。我强烈建议阅读他们的write-up explaining it here。
简要说明:两个字符类(小写,大写,数字和特殊字符)和长度都很重要,因为它们共同提高了密码熵(长度比字符类快得多)但是用户倾向于采用可预测的模式来降低熵。
这可能是幽默,但它有助于说明部分要点: http://xkcd.com/936/
答案 2 :(得分:2)
用户应该能够使用的内容应该没有限制。因为你会在存储之前对密码进行哈希处理(我希望)这对密码包含的内容没有任何影响。
如果您设定要求,则应该是最低要求。
答案 3 :(得分: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
相关:
答案 4 :(得分:-1)
最少8个字符,最好是12个字符
至少一个数字,至少一个小写字母,至少一个大写字母,至少一个符号(* /%...)