1.添加校验密码工具类

public class PasswordUtil {

    /**
     * 校验密码强度 true:通过校验 false:未通过校验
     * @param password
     * @return
     */
    public static boolean checkPassword(String password){
        // 密码长度至少为八位,包含大小写字母、特殊字符和数字
        String regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[~!@#$%^&*()/*-+.?])(?=\\S+$).{8,20}$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(password);
        return matcher.matches();
    }

}

2.在登录方法生成token前拦截(可自定义异常),注意提前修改管理员密码或对管理员开启白名单

if (!PasswordUtil.checkPassword(password)) {
            throw new CustomException("密码强度不符合要求,存在泄密风险,请联系上级卫健单位重置密码");
        }

系统限制密码强度为强安全性_特殊字符

3.修改前端密码校验正则表达式和提示信息,前端需要修改的地方:用户管理重置密码、个人中心重置密码、首次登录强制修改密码

例如:

const rules = ref({
	oldPassword: [{ required: true, message: '旧密码不能为空', trigger: 'blur' }],
	newPassword: [
		{ required: true, message: '新密码不能为空', trigger: 'blur' },
		{
			pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()/*-+.?])(?=\S+$).{8,20}$/,
			message: '密码长度八位以上,必须包含大小写+特殊字符+数字',
			trigger: 'blur'
		}
	],
	confirmPassword: [
		{ required: true, message: '确认密码不能为空', trigger: 'blur' },
		{ required: true, validator: equalToPassword, trigger: 'blur' }
	]
})

用户管理重置密码时可在设置默认密码

function handleResetPwd(row) {
 proxy
  .$prompt('请输入"' + row.userName + '"的新1密码', '提示', {
   confirmButtonText: '确定',
   cancelButtonText: '取消',
   closeOnClickModal: false,
   inputPattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()/*-+.?])(?=\S+$).{8,20}$/,
   inputErrorMessage: '密码长度八位以上,必须包含大小写+特殊字符+数字',
      inputValue: 'Zy12345678!'
  })
  .then(({ value }) => {
   resetUserPwd(row.userId, sm4Encrypt(value)).then((response) => {
    proxy.$modal.msgSuccess('修改成功,新密码是:' + value)
   })
  })
  .catch(() => {})
}

具体修改根据各系统实际情况调整。