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 JSON 数据解析代码
May 26 PHP
php 伪造本地文件包含漏洞的代码
Nov 03 PHP
一个简单的PHP验证码实现代码
May 10 PHP
CI框架开发新浪微博登录接口源码完整版
May 28 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
May 13 PHP
php里array_work用法实例分析
Jul 13 PHP
提高php编程效率技巧
Aug 13 PHP
如何使用php等比例缩放图片
Oct 12 PHP
php die()与exit()的区别实例详解
Dec 03 PHP
浅谈PHP中的错误处理和异常处理
Feb 04 PHP
php项目中类的自动加载实例讲解
Sep 12 PHP
Laravel框架Blade模板简介及模板继承用法分析
Dec 03 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正则的Unknown Modifier错误解决方法
2010/03/02 PHP
基于jquery的图片懒加载js
2010/06/30 Javascript
jQuery.validate 常用方法及需要注意的问题
2013/03/20 Javascript
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
js仿微信抢红包功能
2020/09/25 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
Webpack中loader打包各种文件的方法实例
2019/09/03 Javascript
用js编写留言板
2020/03/17 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
python中enumerate函数遍历元素用法分析
2016/03/11 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
Python实现接受任意个数参数的函数方法
2018/04/21 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
python实现一个简单的ping工具方法
2019/01/31 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
Python 控制终端输出文字的实例
2019/07/12 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
python multiprocessing多进程变量共享与加锁的实现
2019/10/02 Python
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
应届生船舶驾驶求职信
2013/10/19 职场文书
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
学生安全教育材料
2014/02/14 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
材料员岗位职责范本
2015/04/11 职场文书
美丽人生观后感
2015/06/03 职场文书
2016银行招聘自荐信
2016/01/28 职场文书