PHP判斷密碼強度的方法詳解
本文實例講述了PHP判斷密碼強度的方法。分享給大家供大家參考,具體如下:
一、php頁面
$score = 0;
if(!empty($_GET['value'])){ //接收的值
$str = $_GET['value'];
} else{
$str = '';
}
if(preg_match("/[0-9]+/",$str))
{
$score ++;
}
if(preg_match("/[0-9]{3,}/",$str))
{
$score ++;
}
if(preg_match("/[a-z]+/",$str))
{
$score ++;
}
if(preg_match("/[a-z]{3,}/",$str))
{
$score ++;
}
if(preg_match("/[A-Z]+/",$str))
{
$score ++;
}
if(preg_match("/[A-Z]{3,}/",$str))
{
$score ++;
}
if(preg_match("/[_|\-|+|=|*|!|@|#|$|%|^|&|(|)]+/",$str))
{
$score += 2;
}
if(preg_match("/[_|\-|+|=|*|!|@|#|$|%|^|&|(|)]{3,}/",$str))
{
$score ++ ;
}
if(strlen($str) >= 10)
{
$score ++;
}
echo $score;
exit;
二、html頁面
<table cellspacing="0" cellpadding="0"> <tr> <td>輸入密碼:</td> <td colspan="4"><input type="password" value="" name="newpwd" onblur="getPassword();" /> </tr> <tr> <td>密碼強度:</td> <td id="idSM1" align="middle" width="20%"><span style="height:0px; line-height:0px;"> </span><span id="idSMT1" style="DISPLAY: none">弱</span></td> <td id="idSM2" style="BORDER-LEFT: #fff 1px solid" align="middle" width="20%"><span style="height:0px; line-height:0px;"> </span><span id="idSMT0" style="DISPLAY:inline; FONT-WEIGHT: normal; COLOR: #666">無</span><span id="idSMT2" style="DISPLAY: none">中等</span></td> <td id="idSM3" style="BORDER-LEFT: #fff 1px solid" align="middle" width="20%"><span style="height:0px; line-height:0px;"> </span><span id="idSMT3" style="DISPLAY: none">強</span></td> <td id="idSM4" style="BORDER-LEFT: #fff 1px solid" align="middle" width="20%"> <span style="height:0px; line-height:0px;"> </span><span id="idSMT4" style="DISPLAY: none">極好</span></td> </tr> </table>
三、js
<script>
function getPassword(){
var value = $("input[name='newpwd']").attr('value');
$.get('index.php?r=account/testpwd',{value:value},function(data){
if(data>=1 && data<=3){
$('#idSM1').attr('class','pwdChkCon1'); //弱
$('#idSM2').attr('class','pwdChkCon0');
$('#idSM3').attr('class','pwdChkCon0');
$('#idSM4').attr('class','pwdChkCon0');
$('#idSMT1').show();
$('#idSMT0').hide();
$('#idSMT2').hide();
$('#idSMT3').hide();
$('#idSMT4').hide();
} else if(data>=4 && data<=6){ //中等
$('#idSM1').attr('class','pwdChkCon2');
$('#idSM2').attr('class','pwdChkCon2');
$('#idSM3').attr('class','pwdChkCon0');
$('#idSM4').attr('class','pwdChkCon0');
$('#idSMT0').hide();
$('#idSMT1').hide();
$('#idSMT2').show();
$('#idSMT3').hide();
$('#idSMT4').hide();
} else if(data>=7 && data<=8){ //強
$('#idSM1').attr('class','pwdChkCon3');
$('#idSM2').attr('class','pwdChkCon3');
$('#idSM3').attr('class','pwdChkCon3');
$('#idSM4').attr('class','pwdChkCon0');
$('#idSMT0').hide();
$('#idSMT1').hide();
$('#idSMT2').hide();
$('#idSMT3').show();
$('#idSMT4').hide();
} else if(data>=9 && data<=10){ //極好
$('#idSM1').attr('class','pwdChkCon4');
$('#idSM2').attr('class','pwdChkCon4');
$('#idSM3').attr('class','pwdChkCon4');
$('#idSM4').attr('class','pwdChkCon4');
$('#idSMT0').hide();
$('#idSMT1').hide();
$('#idSMT2').hide();
$('#idSMT3').hide();
$('#idSMT4').show();
}
});
}
四、css
<style>
.pwdChkCon0 {BORDER-RIGHT: #bebebe 1px solid;BORDER-BOTTOM: #bebebe 1px solid;BACKGROUND-COLOR: #ebebeb;TEXT-ALIGN: center;}
.pwdChkCon1 {BORDER-RIGHT: #bb2b2b 1px solid;BORDER-BOTTOM: #bb2b2b 1px solid;BACKGROUND-COLOR: #ff4545;TEXT-ALIGN: center;}
.pwdChkCon2 {BORDER-RIGHT: #e9ae10 1px solid;BORDER-BOTTOM: #e9ae10 1px solid;BACKGROUND-COLOR: #ffd35e;TEXT-ALIGN: center;}
.pwdChkCon3 {BORDER-RIGHT: #267a12 1px solid;BORDER-BOTTOM: #267a12 1px solid;BACKGROUND-COLOR: #3abb1c;TEXT-ALIGN: center;}
.pwdChkCon4 {BORDER-RIGHT: #267a12 1px solid;BORDER-BOTTOM: #267a12 1px solid;BACKGROUND-COLOR: #3abb1c;TEXT-ALIGN: center;}
</style>
PS:這里再為大家提供幾款相關(guān)在線工具供大家參考使用:
密碼安全性在線檢測:
http://tools.jb51.net/password/my_password_safe
在線隨機數(shù)字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
高強度密碼生成器:
http://tools.jb51.net/password/CreateStrongPassword
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php加密方法總結(jié)》、《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《PHP數(shù)學運算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設計算法總結(jié)》、《php正則表達式用法總結(jié)》、及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
相關(guān)文章
PHP substr 截取字符串出現(xiàn)亂碼問題解決方法[utf8與gb2312]
在PHP中,使substr函數(shù)截取字符串末位會出現(xiàn)亂碼,因為中文UTF-8編碼,每個漢字占3字節(jié),而GB2312占2字節(jié),英文占1字節(jié),截取位不準確,造成斷開的字符會把其后的..拉過來一起做一個字,所以出現(xiàn)了亂碼。2011-12-12
PHP根據(jù)文章內(nèi)容生成關(guān)鍵詞自動化Keywords標簽
這篇文章主要為大家介紹了PHP根據(jù)文章內(nèi)容生成關(guān)鍵詞實現(xiàn)自動化Keywords標簽實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
PHP中實現(xiàn)生成靜態(tài)文件的方法緩解服務器壓力
使用生成靜態(tài)文件的方法解決服務器與數(shù)據(jù)庫訪問壓力,下面有個不錯的教程,感興趣的朋友可以參考下2014-01-01

