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