package com.vci.client.logon.base; import com.vci.client.framework.systemConfig.object.PasswordStrategyObject; /** *

Title: 获取密码级别

*

Description: 通过checkStrong方法获取输入密码的基本,现阶段系统提供5个级别: * 0代表密码长度太短不符合要求,1和2代表初级、3代表中级、4代表高级

*

Copyright: Copyright (c) 2011

*

Company: VCI

* @author Administrator * @time 2011-8-18 * @version 1.0 */ public class PasswordLevel { /** * 获取字符串每个字符的类型 *

Description:

* * @author Administrator * @time 2011-8-18 * @param sChar * @return */ public static int charMode(char sChar) { if (sChar >= 48 && sChar <= 57) {//数字 return 1; } else if (sChar >= 65 && sChar <= 90) {//大写字母 return 2; } else if (sChar >= 97 && sChar <= 122) {//小写 return 4; } else { return 8; //特殊字符 } } /** * 计算出当前密码当中一共有多少种模式 * *

Description:

* * @author Administrator * @time 2011-8-18 * @param num * @return */ public static int bitTotal(int num) { int modes = 0; for (int i = 0; i < 4; i++){ int mid = num & 1; if (mid > 0) { modes++; } num >>>= 1; } return modes; } public static int checkStrong(String sPW ,Object object){ if (sPW.length() < ((PasswordStrategyObject)object).getPasswordLen()) { return 0; } int Modes = 0; for (int i = 0; i < sPW.length(); i++){ Modes |= charMode(sPW.charAt(i)); } return bitTotal(Modes); } }