天天看點

javascript 密碼強度驗證

//判斷輸入密碼的類型    
function CharMode(iN){
    if(iN>=48 && iN <=57){//數字
        return 1;
    }
    if (iN>=65 && iN <=90){//大寫
        return 2;
    }
    if (iN>=97 && iN <=122){//小寫
        return 4;
    }
    return 8;//特殊字元
}  
//bitTotal函數    
//計算密碼模式    
function bitTotal(num){
    var modes=0;
    for (var i=0;i<4;i++){
        if (num & 1){
            modes++;
        }
        num>>>=1;
    }
    return modes;
}  
//傳回強度級别    
function checkStrong(sPW){
    var Modes=0;    
    for (var i=0;i<sPW.length;i++){
        //密碼模式
        Modes|=CharMode(sPW.charCodeAt(i));
    }
    var strength =  bitTotal(Modes),strength_str = '';
    switch(strength){
        case 1:
            strength_str = '弱:您輸入的密碼強度太弱';
            break;
        case 2:
        case 3:
            strength_str = '中:您的密碼還可以更複雜些';
            break;
        case 4:
            strength_str = '強:您的密碼很安全';
            break;
        default:
            strength_str = '';
            break;
    }
    return strength_str;
}