PHP判斷密碼強(qiáng)度的方法詳解
本文實(shí)例講述了PHP判斷密碼強(qiáng)度的方法。分享給大家供大家參考,具體如下:
一、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>密碼強(qiáng)度:</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">強(qiáng)</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){ //強(qiáng)
$('#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)在線工具供大家參考使用:
密碼安全性在線檢測(cè):
http://tools.jb51.net/password/my_password_safe
在線隨機(jī)數(shù)字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
高強(qiáng)度密碼生成器:
http://tools.jb51.net/password/CreateStrongPassword
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php加密方法總結(jié)》、《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php正則表達(dá)式用法總結(jié)》、及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP回調(diào)函數(shù)概念與用法實(shí)例分析
這篇文章主要介紹了PHP回調(diào)函數(shù)概念與用法,簡(jiǎn)單介紹了回調(diào)函數(shù)的概念、原理,并結(jié)合實(shí)例形式分析了回調(diào)函數(shù)的相關(guān)使用技巧,需要的朋友可以參考下2017-11-11
PHP substr 截取字符串出現(xiàn)亂碼問題解決方法[utf8與gb2312]
在PHP中,使substr函數(shù)截取字符串末位會(huì)出現(xiàn)亂碼,因?yàn)橹形腢TF-8編碼,每個(gè)漢字占3字節(jié),而GB2312占2字節(jié),英文占1字節(jié),截取位不準(zhǔn)確,造成斷開的字符會(huì)把其后的..拉過來一起做一個(gè)字,所以出現(xiàn)了亂碼。2011-12-12
PHP根據(jù)文章內(nèi)容生成關(guān)鍵詞自動(dòng)化Keywords標(biāo)簽
這篇文章主要為大家介紹了PHP根據(jù)文章內(nèi)容生成關(guān)鍵詞實(shí)現(xiàn)自動(dòng)化Keywords標(biāo)簽實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
PHP中實(shí)現(xiàn)生成靜態(tài)文件的方法緩解服務(wù)器壓力
使用生成靜態(tài)文件的方法解決服務(wù)器與數(shù)據(jù)庫訪問壓力,下面有個(gè)不錯(cuò)的教程,感興趣的朋友可以參考下2014-01-01
dedecms后臺(tái)驗(yàn)證碼總提示錯(cuò)誤的解決方法
dedecms后臺(tái)驗(yàn)證碼總提示錯(cuò)誤的解決方法...2007-03-03
利用php實(shí)現(xiàn)禁用IE和火狐的緩存問題
利用php實(shí)現(xiàn)禁用IE和火狐的緩存問題,在網(wǎng)速找了好多方法,最終還是解決了,需要了解的朋友可以參考下2012-12-12

