2024-01-24 18:29:22 +08:00

67 lines
1.8 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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天并为所有登录登录用
if (DateUtil.compare(date, new Date()) < 0 && DateUtil.betweenDay(date, new Date(), true) > 90) {
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"));
}
}