**- 1、用户名最多25个字符长度、不能包含空格、单双引号、问号等特殊符号
- 2、密码6-8位,只能包含字母、数字、特殊符号(_、@、#、$、!)
- 纯数字、纯字母时,密码强度为弱(★★☆☆☆☆)
- 字母+符号、数字+符号、数字+字母,强度为中(★★★★☆☆)
- 同时存在三种字符,强度为强(★★★★★★)**
package userdome;
/**
*字符串工具类,封装了字符串常用的判断方法
* @author TR
*
*/
public class Stringutil {
public static int strength=0; //密码强度计数
public static String correctPart="_@#$!"; //密码中合法字符
/**
* 1、用户名最多25个字符长度、不能包含空格、单双引号、问号等特殊符号
* @param userName
* @return
*/
public static boolean iscotteUserName(String userName){
boolean isCorrect=true;
if(userName==null||userName.length()>25)return false;
String unValidString=" \"'?><,"; //非法字符串
for (char ch : unValidString.toCharArray()) {
if(userName.contains(Character.toString(ch)))return false;
}
// char[] unValidChar={' ','\'','"','?','>','<',','}; //非法字符数组
// for (char ch : unValidChar) {
// if(userName.contains(Character.toString(ch)))return false;
// }
return isCorrect;
}
/**
* 2、密码6-8位,只能包含字母、数字、特殊符号(_、@、#、$、!)
* 纯数字、纯字母时,密码强度为弱(★★☆☆☆☆)
* 字母+符号、数字+符号、数字+字母,强度为中(★★★★☆☆)
* 同时存在三种字符,强度为强(★★★★★★)
* @param passWord
* @return
*/
public static String validatePassWord(String passWord){
StringBuilder power=new StringBuilder(); //密码强度,如果返回为"",那么验证失败,验证成功,则返回星号表示密码强度
if(passWord==null||passWord.length()<6||passWord.length()>8)return power.toString();
for (char ch : passWord.toCharArray()){
//如果此字符不是数字或字母
if(!Character.isLetterOrDigit(ch)){
//如果此字符也不是合法符号,则返回密码强度为""
if(!correctPart.contains(Character.toString(ch)))return power.toString();
}
}
isStrength(passWord);
for (int i = 1; i < 4; i++) {
if(i<=strength){
power.append(String.valueOf("★★"));
}
else{
power.append(String.valueOf("☆☆"));
}
}
return power.toString();
}
/**
* 判断密码强度
* @param passWord
* @return
*/
private static void isStrength(String passWord){
for (char ch : passWord.toCharArray()) { //判断是否包含数字
if(Character.isDigit(ch)){
strength++;
break;
}
}
for (char ch : passWord.toCharArray()) { //判断是否包含字母
if(Character.isLetter(ch)){
strength++;
break;
}
}
for (char ch : passWord.toCharArray()) { //判断是否包含合法符号
if(correctPart.contains(Character.toString(ch))){
strength++;
break;
}
}
}
简单密码验证 (优化版)(java)
最新推荐文章于 2024-07-14 03:09:25 发布