Java密码策略验证
我的问题是创建包含以下内容的策略密码:Java密码策略验证,java,passwords,Java,Passwords,我的问题是创建包含以下内容的策略密码: 大写字母字符-完成 小写字母字符-完成 数字-完成 特殊字符-完成 不允许字母/数字序列,例如qwerty、12345、qazws、poiuy、09876、abcde等-故障 是否有人可以澄清这是通过正则表达式实现的,还是通过Java库(例如vtpassword)实现更好。如果可能,有人能给我提供一个示例代码吗?我不久前解决了我的问题,我想分享我的代码:序列不能包含机械密码的前5个字符 public boolean specialChar(String
- 大写字母字符-完成
- 小写字母字符-完成
- 数字-完成
- 特殊字符-完成
- 不允许字母/数字序列,例如qwerty、12345、qazws、poiuy、09876、abcde等-故障
是否有人可以澄清这是通过正则表达式实现的,还是通过Java库(例如vtpassword)实现更好。如果可能,有人能给我提供一个示例代码吗?我不久前解决了我的问题,我想分享我的代码:序列不能包含机械密码的前5个字符
public boolean specialChar(String password){
String sequences = "!@#$%^&*()(*&^%$#@!";
boolean specbool = false;
Pattern pp = Pattern.compile("\\p{Punct}{5}+");
Matcher mm = pp.matcher(password);
if (mm.find()){
String q = mm.group();
specbool = sequences.contains(q);
}
return specbool;
}
“字母/数字序列”这里有一些非常任意的序列,比如,除了在某些键盘布局上它们是相邻的之外,没有其他模式。你必须列举所有的非法序列并进行检查。这是工作场所密码验证还是学校密码验证?我可以提供关于后一种方法的一些见解,但前者的某些方面应该通过更严格的方法来完成。@AndyTurner是的,只是关于某些键附近的序列。建立一个字典,其中包含最少数量的不可接受的序列字符。例如,如果一行中不能有3个或更多的qwerty字符,则词典只需要包含所有可能的3个字符qwerty序列。然后检查字典中是否有密码的任何3个相邻字符。然后反转密码并再次检查。