关于密码强度设置,求大神帮忙!很蛋疼的需求
目前我设定的密码强度是,长度至少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;
这条我还是没看明白。
------解决方案--------------------
------解决方案--------------------加服务端验证~~~~客户段就别验证了,要不两边都得验证,很麻烦的
------解决方案--------------------这种密码设置,不管复杂还是简单后台都要处理的,单前台本身就不安全,
建议后台每种一个case校验。