日期:2014-05-17  浏览次数:20714 次

关于密码强度设置,求大神帮忙!很蛋疼的需求
目前我设定的密码强度是,长度至少6位,必须包含字母数字和特殊字符。但是例如这样的密码:a111111@。。。

客户说不符合要求。

结果就问他们的需求是什么样子的。。。

然后有了如下蛋疼的需求。。。。


1.防止用户选择有一半以上的字符相同的密码
  
2.防止用户选择含 5 个通用键盘模式字符子串的密码。例如,不允许以英语注册的用户选择含以下 5 个字符子串的密码: 
1234567890; 
0987654321; 
qwertyuiop; 
poiuytrewq; 
asdfghjkl,; 
lkjhgfdsa; 
zxcvbnm; 
mnbvcxz;
  
3.确保密码不包含单词“password” 
4.强制要求密码和用户名均不相同;

如上需求满足是可以满足,但是感觉js判断写的太过于累赘。。。求最简单的解决方案



------解决方案--------------------
正则表达式能实现吗?
------解决方案--------------------
这个确实蛋疼了。。
------解决方案--------------------
确实是需要功夫的啊,不过有很多网站都是做的很好,咱们也可以努力一把吧
------解决方案--------------------
变态的需求、
------解决方案--------------------
这则表达式可以达到你说的这个效果。
------解决方案--------------------
可以借鉴baidu 中国加油是怎么做的。到baidu逛逛就知道了。js基础不好,那就java后台检验,第一个写个函数搞定。后面一大堆,你专门用一个文件或者一张表存放不合格例子,看你这需求不会太多。baidu不也就用一文件把不合格的字符串列举出来么
------解决方案--------------------
2.防止用户选择含 5 个通用键盘模式字符子串的密码。例如,不允许以英语注册的用户选择含以下 5 个字符子串的密码:
1234567890;
0987654321;
qwertyuiop;
poiuytrewq;
asdfghjkl,;
lkjhgfdsa;
zxcvbnm;
mnbvcxz;


这条我还是没看明白。
------解决方案--------------------
探讨

2.防止用户选择含 5 个通用键盘模式字符子串的密码。例如,不允许以英语注册的用户选择含以下 5 个字符子串的密码:
1234567890;
0987654321;
qwertyuiop;
poiuytrewq;
asdfghjkl,;
lkjhgfdsa;
zxcvbnm;
mnbvcxz;


这条我还是没看明白。

------解决方案--------------------
加服务端验证~~~~客户段就别验证了,要不两边都得验证,很麻烦的
------解决方案--------------------
这种密码设置,不管复杂还是简单后台都要处理的,单前台本身就不安全,
建议后台每种一个case校验。