2023-10-27 16:35:36 +08:00
|
|
|
|
package com.zhgd.xmgl.util;
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
|
import lombok.experimental.UtilityClass;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
|
|
|
|
@UtilityClass
|
|
|
|
|
|
public class PwUtil {
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 长度至少为8,至少含有一个字母和一个数字和一个特殊字符
|
|
|
|
|
|
*/
|
|
|
|
|
|
String pattern = "^(?=.*[A-Za-z])(?=.*\\d)(?=.*[@$!%*#?&])[A-Za-z\\d@$!%*#?&]{8,}$";
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 校验密码规则
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param pw
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
public void checkPwPattern(String pw) {
|
|
|
|
|
|
if (!PwUtil.doCheckPw(pw)) {
|
|
|
|
|
|
//前端校验
|
|
|
|
|
|
//throw new OpenAlertException(MessageUtil.get("passwordPatternErr"));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 校验密码是否过期,true过期
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param date
|
|
|
|
|
|
*/
|
|
|
|
|
|
public boolean checkPwExpire(Date date) {
|
|
|
|
|
|
//口令最长有效期为90天,并为所有登录登录用
|
2024-01-24 18:29:22 +08:00
|
|
|
|
if (DateUtil.compare(date, new Date()) < 0 && DateUtil.betweenDay(date, new Date(), true) > 90) {
|
2023-10-27 16:35:36 +08:00
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 检验密码规则(长度至少为8,至少含有一个字母和一个数字和一个特殊字符)
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param pw
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
private boolean doCheckPw(String pw) {
|
|
|
|
|
|
if (StrUtil.isBlank(pw)) {
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
return pw.matches(pattern);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void main(String[] args) {
|
|
|
|
|
|
System.out.println(doCheckPw("12345678"));
|
|
|
|
|
|
System.out.println(doCheckPw("123!a"));
|
|
|
|
|
|
System.out.println(doCheckPw("123a"));
|
|
|
|
|
|
System.out.println(doCheckPw("123!"));
|
|
|
|
|
|
System.out.println(doCheckPw("aaaaaaaaaaaaaaaaa"));
|
|
|
|
|
|
System.out.println(doCheckPw("aaaaaaaa!aaaaaaa"));
|
|
|
|
|
|
System.out.println(doCheckPw("123567899!j"));
|
|
|
|
|
|
System.out.println(doCheckPw("123567899!H"));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|