|
|
@@ -0,0 +1,36 @@
|
|
|
+package com.uas.sso.util;
|
|
|
+
|
|
|
+import com.uas.sso.core.PasswordStrength;
|
|
|
+import com.uas.sso.exception.VisibleError;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author wangmh
|
|
|
+ * @create 2018-04-24 16:15
|
|
|
+ * @desc 密码强度等级工具类
|
|
|
+ **/
|
|
|
+public class PasswordLevelUtils {
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 校验密码强度
|
|
|
+ *
|
|
|
+ * @param password 密码
|
|
|
+ * @return PasswordStrength枚举
|
|
|
+ * @throws VisibleError 用户可见异常
|
|
|
+ */
|
|
|
+ public static PasswordStrength checkPasswordLevel(String password) throws VisibleError {
|
|
|
+ // todo 需要放入工具类
|
|
|
+ String strongRegex = "^(?=.{8,20})(((?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]))|((?=.*[0-9])((?=.*[a-zA-Z]))(?=.*[^a-zA-Z0-9]))).*$";
|
|
|
+ String mediumRegex = "^(?=.{8,20})(((?=.*[0-9])(?=.*[a-z]))|((?=.*[0-9])(?=.*[A-Z]))).*$";
|
|
|
+ if (password == null) {
|
|
|
+ throw new VisibleError("密码不能为空");
|
|
|
+ }
|
|
|
+ if (password.matches(strongRegex)) {
|
|
|
+ return PasswordStrength.STRONG;
|
|
|
+ } else if (password.matches(mediumRegex)) {
|
|
|
+ return PasswordStrength.MEDIUM;
|
|
|
+ } else {
|
|
|
+ return PasswordStrength.WEAK;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|