這篇文章給大家介紹使用JavaScript怎么實現(xiàn)一個密碼強度驗證功能,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
百色ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!思路:
1.密碼通常是由數(shù)字,大寫字母,小寫字母以及特殊字符組成
2.密碼全部是純數(shù)字或者純大寫字母,或者純小寫字母,我們認為是密碼強度較低
3.密碼由兩種混合,我們認為密碼強度是中等的
4.密碼由三種或者四種混合,我們認為這樣的密碼組合強度很強
5.通過判斷輸入的密碼每個字符,如果是數(shù)字返回1;如果是大寫字母,返回2;如果是小寫字母,返回4;如果是特殊字符,則返回8(至于為什么選擇返返回這些數(shù)字請看第六條);
6.初始化一個體現(xiàn)密碼強度的變量為0,在二進制下表示也就是0000,將他與我們的返回值進行二進制相或運算
7.比如初始值0000
與數(shù)字的返回值1(0001)相或運算,等于0001;
與一個小寫字母和大寫字母組成的密碼相或就是0110;
與大寫字母,小寫字母,數(shù)字組成的密碼相或就是0111;
與大寫字母,小寫字母,數(shù)字,特殊字符的密碼相或就是1111;
8.將相或結(jié)果賦值給這個初始值,通過判斷這個值在二進制下有多少個1,就能判斷對應密碼強度(用0001與這個值做相并計算,同時做無符號右移運算,即可獲得1的個數(shù))
以上就是我們的思路,那么我們就可以開始書寫我們的代碼
①創(chuàng)建一個函數(shù),判斷輸入值的每一個字符由什么組成的
function charMode(char){ switch (true) { case (char>=48&&char<=57): return 1; break; case (char>=65&&char<=90): return 2; break; case (char>=97&&char<=122): return 4; break; default: return 8; break; } }
這里也可以用if else 來做判斷,只是沒有switch看起來這么爽,同時這里注意,switch()括號里傳入的不是輸入值,而是一個true;因為case后面返回的是一個布爾值,判斷的是布爾值之間是否相等(switch做全等比較,不進行類型轉(zhuǎn)換)
②創(chuàng)建一個函數(shù),用于判斷整個輸入串的密碼強度類型
function checkPsw(password){ strengh=0;//定義一個全局變量用于檢測密碼強度 for(var i=0;i<password.length;i++){ strengh|=charMode(password.charCodeAt(i)); } }
這里 |= 的意思是做相或運算,并賦值
③創(chuàng)建一個函數(shù),計算密碼強度
function charStrengh(strengh){ var reference=0; for(var i=0;i<4;i++){ if(strengh&1){ reference++; } strengh>>>=1;//無符號右移一位繼續(xù)匹配 } return reference; }
關于使用JavaScript怎么實現(xiàn)一個密碼強度驗證功能就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
網(wǎng)頁名稱:使用JavaScript怎么實現(xiàn)一個密碼強度驗證功能-創(chuàng)新互聯(lián)
文章鏈接:http://aaarwkj.com/article40/csodho.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、響應式網(wǎng)站、標簽優(yōu)化、虛擬主機、服務器托管、網(wǎng)站設計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容