>  기사  >  백엔드 개발  >  PHP가 비밀번호의 강도를 결정하는 방법에 대한 자세한 예

PHP가 비밀번호의 강도를 결정하는 방법에 대한 자세한 예

怪我咯
怪我咯원래의
2017-07-11 11:53:212482검색

이 웹사이트는 사용자가 자신의 비밀번호의 보안을 테스트하고 비밀번호를 해독하는 데 걸리는 시간을 테스트하는 데 도움이 되는 테스트 웹사이트입니다. 이 웹사이트의 목적은 사용자에게 비밀번호를 단순한 123456으로 설정하지 말고 숫자를 포함하도록 지시하는 것입니다. 문자, 특수기호 등을 사용하여 비밀번호의 보안성을 강화합니다. 이 글에서는 주로 PHP를 사용하여 비밀번호의 강도를 확인하는 방법을 소개합니다.

1. 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;

2. 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>

3. js

<script>
function getPassword(){
    var value = $("input[name=&#39;newpwd&#39;]").attr(&#39;value&#39;);
    $.get(&#39;index.php?r=account/testpwd&#39;,{value:value},function(data){
        if(data>=1 && data<=3){
            $(&#39;#idSM1&#39;).attr(&#39;class&#39;,&#39;pwdChkCon1&#39;); //弱
            $(&#39;#idSM2&#39;).attr(&#39;class&#39;,&#39;pwdChkCon0&#39;);
            $(&#39;#idSM3&#39;).attr(&#39;class&#39;,&#39;pwdChkCon0&#39;);
            $(&#39;#idSM4&#39;).attr(&#39;class&#39;,&#39;pwdChkCon0&#39;);
            $(&#39;#idSMT1&#39;).show();
            $(&#39;#idSMT0&#39;).hide();
            $(&#39;#idSMT2&#39;).hide();
            $(&#39;#idSMT3&#39;).hide();
            $(&#39;#idSMT4&#39;).hide();
        } else if(data>=4 && data<=6){ //中等
            $(&#39;#idSM1&#39;).attr(&#39;class&#39;,&#39;pwdChkCon2&#39;);
            $(&#39;#idSM2&#39;).attr(&#39;class&#39;,&#39;pwdChkCon2&#39;);
            $(&#39;#idSM3&#39;).attr(&#39;class&#39;,&#39;pwdChkCon0&#39;);
            $(&#39;#idSM4&#39;).attr(&#39;class&#39;,&#39;pwdChkCon0&#39;);
            $(&#39;#idSMT0&#39;).hide();
            $(&#39;#idSMT1&#39;).hide();
            $(&#39;#idSMT2&#39;).show();
            $(&#39;#idSMT3&#39;).hide();
            $(&#39;#idSMT4&#39;).hide();
        } else if(data>=7 && data<=8){ //强
            $(&#39;#idSM1&#39;).attr(&#39;class&#39;,&#39;pwdChkCon3&#39;);
            $(&#39;#idSM2&#39;).attr(&#39;class&#39;,&#39;pwdChkCon3&#39;);
            $(&#39;#idSM3&#39;).attr(&#39;class&#39;,&#39;pwdChkCon3&#39;);
            $(&#39;#idSM4&#39;).attr(&#39;class&#39;,&#39;pwdChkCon0&#39;);
            $(&#39;#idSMT0&#39;).hide();
            $(&#39;#idSMT1&#39;).hide();
            $(&#39;#idSMT2&#39;).hide();
            $(&#39;#idSMT3&#39;).show();
            $(&#39;#idSMT4&#39;).hide();
        } else if(data>=9 && data<=10){ //极好
            $(&#39;#idSM1&#39;).attr(&#39;class&#39;,&#39;pwdChkCon4&#39;);
            $(&#39;#idSM2&#39;).attr(&#39;class&#39;,&#39;pwdChkCon4&#39;);
            $(&#39;#idSM3&#39;).attr(&#39;class&#39;,&#39;pwdChkCon4&#39;);
            $(&#39;#idSM4&#39;).attr(&#39;class&#39;,&#39;pwdChkCon4&#39;);
            $(&#39;#idSMT0&#39;).hide();
            $(&#39;#idSMT1&#39;).hide();
            $(&#39;#idSMT2&#39;).hide();
            $(&#39;#idSMT3&#39;).hide();
            $(&#39;#idSMT4&#39;).show();
        }
    });
}

4. 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>

위 내용은 PHP가 비밀번호의 강도를 결정하는 방법에 대한 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.