Appearance
密码强度判断工具类
简介
- 判断密码长度是否符合要求;
- 判断密码强度,是否包含数字、字母、特殊字符等;
工具类封装在:com.kg.component.utils.PasswordRegexUtils.java
使用方法
- 判断密码长度方法:
TIP
- 参数1 - min: 密码最小长度
- 参数2 - max: 密码最大长度
- 参数3 - password: 待判断的密码
- 返回值:boolean,true:符合要求,false:不符合要求
- 判断密码强度方法:
TIP
- 参数1 - lowerStatus: 密码是否包含小写字母 0无 1必须 2非必须
- 参数2 - upperStatus: 密码是否包含大写字母 0无 1必须 2非必须
- 参数3 - numStatus: 密码是否包含数字 0无 1必须 2非必须
- 参数4 - specialStatus: 密码是否包含特殊字符 0无 1必须 2非必须
- 参数5 - password: 待判断的密码
- 返回值:boolean,true:符合要求,false:不符合要求
示例代码
- ZSafety.java实体类,在【后台-系统配置-安全策略管理】中配置,如下图所示。
- 修改密码时,根据以上 ZSafety 的配置,判断密码是否符合要求。
java
/**
* 修改用户密码
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void editPassword(ZUserEditPasswordDTO passwordDTO) throws BaseException {
//...省略代码...
// 判断密码规则
ZSafety safety = safetyService.getSafety();
// 长度
if (!PasswordRegexUtils.judgeLength(safety.getStartLength(), safety.getEndLength(), passwordDTO.getPassword())) {
throw new BaseException(safety.getPrompt());
}
// 强度
if (!PasswordRegexUtils.judgeRegex(safety.getLowercase().intValue(), safety.getUppercase().intValue(),
safety.getNumbers().intValue(), safety.getSpecialCharacters().intValue(), passwordDTO.getPassword())) {
throw new BaseException(safety.getPrompt());
}
//...省略代码...
}