From 811f2d080d12fec5b95ff41c5263e89741e16cf9 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 11 十二月 2024 10:24:08 +0800
Subject: [PATCH] 1

---
 se-modules/se-system/src/main/java/com/se/system/utils/CheckPwdUtils.java |   96 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 96 insertions(+), 0 deletions(-)

diff --git a/se-modules/se-system/src/main/java/com/se/system/utils/CheckPwdUtils.java b/se-modules/se-system/src/main/java/com/se/system/utils/CheckPwdUtils.java
new file mode 100644
index 0000000..6e9899f
--- /dev/null
+++ b/se-modules/se-system/src/main/java/com/se/system/utils/CheckPwdUtils.java
@@ -0,0 +1,96 @@
+package com.se.system.utils;
+
+@SuppressWarnings("ALL")
+public class CheckPwdUtils {
+    /**
+     * NUM 鏁板瓧
+     * SMALL_LETTER 灏忓啓瀛楁瘝
+     * CAPITAL_LETTER 澶у啓瀛楁瘝
+     * OTHER_CHAR 鐗规畩瀛楃
+     */
+    private static final int NUM = 1;
+
+    private static final int SMALL_LETTER = 2;
+
+    private static final int CAPITAL_LETTER = 3;
+
+    private static final int OTHER_CHAR = 4;
+
+    /**
+     * 妫�鏌ュ瘑鐮佺殑寮哄害
+     *
+     * @param passwd 瀵嗙爜
+     * @return 瀵嗙爜绛夌骇
+     */
+    public static int checkPwdLevel(String passwd) {
+        if (null == passwd) {
+            throw new IllegalArgumentException("瀵嗙爜涓嶈兘涓虹┖");
+        }
+        if (passwd.length() < 8) {
+            return 1;
+        }
+
+        int level = 0;
+        // 鍒ゆ柇瀵嗙爜闀垮害鏄惁澶т簬绛変簬8 鏄痩evel++
+        if (passwd.length() >= 8) {
+            level++;
+        }
+        // 鍒ゆ柇瀵嗙爜鏄惁鍚湁鏁板瓧 鏈塴evel++
+        if (countLetter(passwd, NUM) > 0) {
+            level++;
+        }
+        // 鍒ゆ柇瀵嗙爜鏄惁鍚湁灏忓啓瀛楁瘝 鏈塴evel++
+        if (countLetter(passwd, SMALL_LETTER) > 0) {
+            level++;
+        }
+        // 鍒ゆ柇瀵嗙爜鏄惁杩樻湁澶у啓瀛楁瘝 鏈塴evel++
+        if (countLetter(passwd, CAPITAL_LETTER) > 0) {
+            level++;
+        }
+        // 鍒ゆ柇瀵嗙爜鏄惁杩樻湁鐗规畩瀛楃 鏈塴evel++
+        if (countLetter(passwd, OTHER_CHAR) > 0) {
+            level++;
+        }
+
+        return level;
+    }
+
+    /**
+     * 璁$畻瀵嗙爜涓寚瀹氬瓧绗︾被鍨嬬殑鏁伴噺
+     *
+     * @param passwd 瀵嗙爜
+     * @param type   绫诲瀷
+     * @return 鏁伴噺
+     */
+    private static int countLetter(String passwd, int type) {
+        int count = 0;
+        if (null != passwd && !passwd.isEmpty()) {
+            for (char c : passwd.toCharArray()) {
+                if (checkCharacterType(c) == type) {
+                    count++;
+                }
+            }
+        }
+        return count;
+    }
+
+    /**
+     * 妫�鏌ュ瓧绗︾被鍨嬶紝鍖呮嫭num銆佸ぇ鍐欏瓧姣嶃�佸皬鍐欏瓧姣嶅拰鍏朵粬瀛楃銆�
+     *
+     * @param c 鈥� 瀛楃
+     * @return 绫诲瀷
+     */
+    private static int checkCharacterType(char c) {
+        if (c >= 48 && c <= 57) {
+            return NUM;
+        }
+        if (c >= 65 && c <= 90) {
+            return CAPITAL_LETTER;
+        }
+        if (c >= 97 && c <= 122) {
+            return SMALL_LETTER;
+        }
+
+        return OTHER_CHAR;
+    }
+}

--
Gitblit v1.9.3