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

怪我咯
Libérer: 2023-03-13 14:26:01
original
2474 Les gens l'ont consulté

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;
Copier après la connexion

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>
Copier après la connexion

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();
        }
    });
}
Copier après la connexion

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>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal