>  기사  >  백엔드 개발  >  PHP에서 비밀번호 강도를 확인하는 방법

PHP에서 비밀번호 강도를 확인하는 방법

墨辰丷
墨辰丷원래의
2018-05-22 10:41:512219검색

이 글에서는 주로 PHP에서 비밀번호 강도를 판단하는 방법을 소개하며, PHP 정규 판단, Ajax 상호 작용 및 페이지 요소의 동적 조작과 관련된 구현 기술을 포함합니다. 도움이 필요한 친구들은 참고할 수 있습니다

자세한 내용은 다음과 같습니다.

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;

두 번째, 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>

Three, 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>

관련 권장 사항:

js는 password Strengthverification

JS의 password Strength 확인 정규 표현식(코드 포함)에 정규식을 사용합니다.
사용자 확인 settings

비밀번호 강도

정규 표현식

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

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