1. 程式人生 > >校驗密碼強度的參考代碼

校驗密碼強度的參考代碼

ron system rgs print () ring else i++ strong

  public static void main(String[] args) throws Exception {
        String str = "WERUIuy%^*&5467";
        int i = checkStrong(str);
        if(i<=2){
            System.out.println("密碼強度不夠!");
        }
    }
    
    /**
     * 計算出當前密碼當中一共有多少種模式
     * @param pwd
     * @return
     */
    public
static int checkStrong(String pwd){ if(pwd.length() < 4) return 0; int modes = 0; for(int i = 0;i<pwd.length();i++){ modes |= getCharMode(pwd.charAt(i)); // } return bitTotal(modes); } /** * 返回當前字符的模式 * @param i *
@return */ public static int getCharMode(int i){ if (i >= 48 && i <= 57) //數字 return 1; if (i >= 65 && i <= 90) //大寫字母 return 2; if (i >= 97 && i <= 122) //小寫 return 4; else return
8; //特殊字符 } /** * 遍歷數的二進制表示,看有多少個1 * @param num * @return */ public static int bitTotal(int num){ int modes = 0; for (int i = 0; i < 4; i++) { if ((num & 1) == 1) modes++; num >>>= 1; } return modes; }

校驗密碼強度的參考代碼