Maison  >  Article  >  développement back-end  >  Exemple détaillé de la façon dont PHP détermine la force d'un mot de passe

Exemple détaillé de la façon dont PHP détermine la force d'un mot de passe

怪我咯
怪我咯original
2017-07-11 11:53:212475parcourir

Le site Web

est un site Web de test qui peut aider les utilisateurs à tester la sécurité du mot de passe qu'ils ont défini et le temps nécessaire pour le déchiffrer. Son but est d'indiquer aux utilisateurs de ne pas définir le mot de passe sur un. simple 123456, mais inclure des chiffres, des lettres, des symboles spéciaux, etc., améliore les capacités de sécurité des mots de passe. Cet article présente principalement comment utiliser php pour déterminer la force des mots de passe. Les exemples sont les suivants

1. Page 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. Page 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();
        }
    });
}

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>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn