Rumah > Artikel > hujung hadapan web > Contoh lengkap penjanaan kata laluan JS dan pengesanan kekuatan (dengan muat turun kod sumber demo)
Contoh dalam artikel ini menerangkan kaedah penjanaan kata laluan JS dan pengesanan kekuatan. Kongsi dengan semua orang untuk rujukan anda, butirannya adalah seperti berikut:
1 Jana kata laluan yang kukuh
Tangkapan skrin adalah seperti berikut:
Kod yang berkaitan adalah seperti berikut:
function getPwd(n) { var s = ''; while(n--) s += String.fromCharCode(33 + Math.floor(Math.random()*(126-33))) document.getElementById('txt1').value = s; }
2. Kira masa retak kata laluan
Tangkapan skrin adalah seperti berikut:
Kod yang berkaitan adalah seperti berikut:
function getTime() { var str = '预计破解用时:'; var selChar = document.getElementById('selChar'); var txtPwdLen = document.getElementById('txtPwdLen'); var num = Math.pow(parseInt(selChar.value), parseInt(txtPwdLen.value)); str += formatTime(num / (1024*1024*1024*2.4*2)); document.getElementById('span2').innerHTML = str; } function formatTime(s) { var str = ''; if(s= 1) str = s % 60 + '秒' + str; s = Math.floor(s / 60); if(s >= 1) str = s % 60 + '分' + str; s = Math.floor(s / 60); if(s >= 1) str = s % 24 + '时' + str; s = Math.floor(s / 24); if(s >= 1) str = s + '天' + str; return str; }
3 pengesanan
Tangkapan skrin adalah seperti berikut:
Kod yang berkaitan adalah seperti berikut:
function showPwd() { var p = document.getElementById('txt2').value; if(p.length < 4) { showError('密码至少4位!'); return; } var o = checkPwd(p); if(o.isSame) { showError('密码为重复字符!'); return; } for(var i=0; i1900 && year0 && month0 && day<32) { showError('不要使用日期作为密码!'); return; } } } var hasUpper = false; var hasLow = false; var hasNum = false; var hasOther = false; for(var i=0; i=65&&c=97&&c=48&&c<=57)hasNum=true; else hasOther=true; } var pwdNum = 0; if(hasUpper)pwdNum+=26; if(hasLow)pwdNum+=26; if(hasNum)pwdNum+=10; if(hasOther)pwdNum+=32; var num = Math.pow(pwdNum, p.length); var str = '密码长度:' + p.length + ' 强度:' + pwdNum + ' 预计破解用时:' + formatTime(num / (1024*1024*1024*2.4*2)); var span1 = document.getElementById('span1'); span1.style.color = 'blue'; span1.innerHTML = str; }
4. Kesan sama ada papan kekunci dikunci huruf besar (status kunci Caps Lock)
Tangkapan skrin adalah seperti berikut:
Kod yang berkaitan adalah seperti berikut:
var $lock = false; function checkCapsLock(fn) { document.documentElement.onkeypress = function(e) { var e = e || event; var k = e.keyCode || e.which; var s = e.shiftKey || (k == 16) || false; if(k>=65&&k=97&&k<=122)$lock=s; fn($lock); } document.documentElement.onkeyup = function(e) { var e = e || event; var k = e.keyCode || e.which; if(k==20)$lock = !$lock; fn($lock); } }