PHP判断密码强度的方法详解


Posted in PHP onMay 26, 2017

本文实例讲述了PHP判断密码强度的方法。分享给大家供大家参考,具体如下:

一、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>

三、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){ //强
            $('#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>
PHP 相关文章推荐
PHP 缓存实现代码及详细注释
May 16 PHP
php INI配置文件的解析实现分析
Jan 04 PHP
PHP四舍五入精确小数位及取整
Jan 14 PHP
php实现window平台的checkdnsrr函数
May 27 PHP
PHP翻页跳转功能实现方法
Nov 30 PHP
基于命令行执行带参数的php脚本并取得参数的方法
Jan 25 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
PHP获取ttf格式文件字体名的方法示例
Mar 06 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
Oct 17 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
Oct 24 PHP
php实现对短信验证码发送次数的限制实例讲解
Mar 04 PHP
thinkphp实现附件上传功能
May 26 #PHP
微信第三方登录(原生)demo【必看篇】
May 26 #PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
May 26 #PHP
老生常谈PHP面向对象之注册表模式
May 26 #PHP
老生常谈PHP数组函数array_merge(必看篇)
May 25 #PHP
Yii框架实现多数据库配置和操作的方法
May 25 #PHP
Yii框架扩展CGridView增加导出CSV功能的方法
May 24 #PHP
You might like
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
jQuery基础知识小结
2014/12/22 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
2015/01/09 Javascript
js实现百度联盟中一款不错的图片切换效果完整实例
2015/03/04 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
动态加载js文件简单示例
2016/04/21 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
2016/06/15 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
详解js实现线段交点的三种算法
2016/08/09 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
AngularJs表单验证实例代码解析
2016/11/29 Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
2017/12/26 Javascript
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
angular6的table组件开发的实现示例
2018/12/26 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
了解重排与重绘
2019/05/29 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
在Python的Django框架中显示对象子集的方法
2015/07/21 Python
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
美国购物网站:Clickhere2shop
2021/01/28 全球购物
如何写出高质量、高性能的MySQL查询
2014/11/17 面试题
《胡杨》教学反思
2014/02/16 职场文书
生日寄语大全
2014/04/08 职场文书
党员十八大心得体会
2014/09/12 职场文书
婚礼父母答谢词
2015/01/04 职场文书
党员评议自我评价
2015/03/03 职场文书
南京南京观后感
2015/06/02 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
python中数组和列表的简单实例
2022/03/25 Python
如何Tomcat中使用ipv6地址
2022/05/06 Servers