67 lines
1.8 KiB
Java
Raw Normal View History

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"));
}
}