Java中使用matches函数判断密码强度
本文是基于Windows 10系统环境,使用Java中使用matches函数判断密码强度
- Windows 10
一、matches函数
- java中的matches()进行模式匹配
(1) matches使用方法
String str1 = new String("abc");
boolean flag1 = str1.matches("[a-z]{3}"
System.out.println(flag1);
// flag=true
String str2 = new String("abc");
boolean flag2 = str2.matches("[a-z]{4}"
System.out.println(flag2);
// flag=false
String str3 = new String("a2b");
boolean flag3 = str3.matches("[a-z]{3}"
System.out.println(flag3);
// flag=false
二、matches应用
(1) 判断密码强度
public String checkPassword(String password) {
String regexWeak1 = "^[0-9A-Za-z]{6,16}$";
String regexMedium1 = "^(?=.{6,16})[0-9A-Za-z]*[^0-9A-Za-z][0-9A-Za-z]*$";
String regexMedium2 = "^(?=.{6,16})[0-9A-Za-z]*[\x00-\x2f\x3A-\x40\x5B-\xFF][0-9A-Za-z]*$";
String regexStrong1 = "^(?=.{6,16})([0-9A-Za-z]*[^0-9A-Za-z][0-9A-Za-z]*){2,}$";
String regexStrong2 = "^(?=.{6,16})([0-9A-Za-z]*[\x00-\x2F\x3A-\x40\x5B-\xFF][0-9A-Za-z]*){2,}$*/";
if (passwordStr.matches(regexWeak1)) {
return "Weak";
}
if (passwordStr.matches(regexMedium1)) {
return "Medium";
}
if (passwordStr.matches(regexMedium2)) {
return "Medium";
}
if (passwordStr.matches(regexStrong1)) {
return "Strong";
}
if (passwordStr.matches(regexStrong2)) {
return "Strong";
}
return passwordStr;
}