package com.zhgd.xmgl.util; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.zhgd.jeecg.common.execption.OpenAlertException; 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.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")); } }