Skip to content

密码强度判断工具类

简介

  • 判断密码长度是否符合要求;
  • 判断密码强度,是否包含数字、字母、特殊字符等;

工具类封装在:com.kg.component.utils.PasswordRegexUtils.java

使用方法

  1. 判断密码长度方法:

TIP

  • 参数1 - min: 密码最小长度
  • 参数2 - max: 密码最大长度
  • 参数3 - password: 待判断的密码
  • 返回值:boolean,true:符合要求,false:不符合要求

判断密码长度方法

  1. 判断密码强度方法:

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());
    }
    
    //...省略代码...
}