备案增加网站,高端网站的设计开发公司,西安cms建站,打开wordpress标题显示一、后台管理系统密码要求 后台管理系统密码要求 口令有效期#xff1a;90天 口令长度8位及8位以上 口令复杂度要求#xff0c;至少包含以下四类字符中的三类字符: 英文大写字母(A 到 Z)、英文小写字母(a 到 z)、10个基本数字(0 到 9)、特殊字符(例如 !、$、#、%、、^、90天 口令长度8位及8位以上 口令复杂度要求至少包含以下四类字符中的三类字符: 英文大写字母(A 到 Z)、英文小写字母(a 到 z)、10个基本数字(0 到 9)、特殊字符(例如 !、$、#、%、、^、) 口令不与前3次重复 口令注意事项 1禁止使用连续的三个数字或键盘连续的三个字母作为密码的组成部分如asdf123、abcd1234 、qazwsx等 2禁止使用系统账号、姓名、出生日期的作为密码的组成部分如zhangsan123、admin123、hhh2021 3避免使用字典口令包括许多大家习惯性设置的口令比如常见的字典口令Qazwsx、Admin123、hkcts123、hhh12345等。 二、怎么做
1、密码复杂度 /** * 校验复杂度 */ public Boolean checkPWD(String PWD) { // 规定的正则表达式 // (?![a-zA-Z]$) 表示 字符串不能完全由大小写字母组成 // (?![A-Z0-9]$) 表示 字符串不能完全由大写字母和数字组成 // (?![A-Z\W_]$) 表示 字符串不能完全由大写字母和特殊字符组成 // (?![a-z0-9]$) 表示 字符串不能完全由小写字母和数字组成 // (?![a-z\W_]$) 表示 字符串不能完全由小写字母和特殊字符组成 // (?![0-9\W_]$) 表示 字符串不能完全由数字和特殊字符组成 // [a-zA-Z0-9\W_]{8,} 表示 字符串应该匹配大小写字母、数字和特殊字符至少匹配8次 String regex ^(?![a-zA-Z]$)(?![A-Z0-9]$)(?![a-z0-9]$)(?![A-Z\\W_]$)(?![a-z\\W_]$)(?![0-9\\W_]$)[a-zA-Z0-9\\W_]{8,}$; return ReUtil.isMatch(regex, PWD); } /*** 校验复杂度*/public Boolean checkPWD(String PWD) {// 规定的正则表达式// (?![a-zA-Z]$) 表示 字符串不能完全由大小写字母组成// (?![A-Z0-9]$) 表示 字符串不能完全由大写字母和数字组成// (?![A-Z\W_]$) 表示 字符串不能完全由大写字母和特殊字符组成// (?![a-z0-9]$) 表示 字符串不能完全由小写字母和数字组成// (?![a-z\W_]$) 表示 字符串不能完全由小写字母和特殊字符组成// (?![0-9\W_]$) 表示 字符串不能完全由数字和特殊字符组成// [a-zA-Z0-9\W_]{8,} 表示 字符串应该匹配大小写字母、数字和特殊字符至少匹配8次String regex ^(?![a-zA-Z]$)(?![A-Z0-9]$)(?![a-z0-9]$)(?![A-Z\\W_]$)(?![a-z\\W_]$)(?![0-9\\W_]$)[a-zA-Z0-9\\W_]{8,}$;return ReUtil.isMatch(regex, PWD);}
密码与前三次重复
/*** 校验密码是否和前3次重复*/public Boolean checkRepeatPWD(String pwd,TUser tUser) {ListTUserPasswordLog list tUserPasswordLogMapper.selectLimt(tUser.getLoginName());if(CollectionUtils.isNotEmpty(list)) {for (TUserPasswordLog tUserPasswordLog : list) {if(pwd.equals(tUserPasswordLog.getPassword())) {return false;}}}return true;}
Repository
public interface TUserPasswordLogMapper extends BaseMapperTUserPasswordLog{/*** 更新管理员最后登录时间 id,user_name as userName,login_name as loginName, password*/Select(script select * from t_user_password_log WHERE LOGIN_NAME #{loginName} order by create_time desc limit 3 /script)public ListTUserPasswordLog selectLimt(Param(loginName) String loginName );}
处理校验过程
//校验密码复杂度Boolean checkPWD tUserService.checkPWD(dto.getNewPassword());if (!checkPWD) {log.error(TUserConstant.PWD_CHECK_ERROR);return ResponseData.error(TUserConstant.PWD_CHECK_ERROR);}//校验是否三次密码重复Boolean checkRepeatPWD tUserPasswordLogService.checkRepeatPWD(Des3Utils.get3DESEncryptECB(dto.getNewPassword(), AES_KEY), tUser);if(!checkRepeatPWD) {log.error(TUserConstant.PWD_REPEAT_ERROR);return ResponseData.error(ResponseCode.PASS_REPEAT_ERROR);}
修改密码日志表
-- Drop table
-- DROP TABLE public.t_user_password_log;
CREATE TABLE public.t_user_password_log ( id varchar(32) NOT NULL, user_name varchar(255) NOT NULL, login_name varchar(255) NOT NULL, password varchar(255) NOT NULL, create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT t_user_password_log_pkey PRIMARY KEY (id) ); -- Drop table-- DROP TABLE public.t_user_password_log;CREATE TABLE public.t_user_password_log (id varchar(32) NOT NULL,user_name varchar(255) NOT NULL,login_name varchar(255) NOT NULL,password varchar(255) NOT NULL,create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,CONSTRAINT t_user_password_log_pkey PRIMARY KEY (id)
);-- Permissions