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 相关文章推荐
了解Joomla 这款来自国外的php网站管理系统
Mar 11 PHP
PHP几个数学计算的内部函数学习整理
Aug 06 PHP
服务器变量 $_SERVER 的深入解析
Jul 02 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 PHP
递归实现php数组转xml的代码分享
May 14 PHP
yii2分页之实现跳转到具体某页的实例代码
Jun 02 PHP
Docker 如何布置PHP开发环境
Jun 21 PHP
Yii框架中sphinx索引配置方法解析
Oct 18 PHP
PHP实现的简单AES加密解密算法实例
May 29 PHP
Laravel模型事件的实现原理详解
Mar 14 PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 PHP
Laravel框架实现多个视图共享相同数据的方法详解
Jul 09 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
一个简单的MySQL数据浏览器
2006/10/09 PHP
php include加载文件两种方式效率比较
2010/08/08 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
php ckeditor上传图片文件名乱码解决方法
2013/11/15 PHP
测试php连接mysql是否成功的代码分享
2014/01/24 PHP
基于PHP实现用户注册登录功能
2016/10/14 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
点弹代码 点击页面任何位置都可以弹出页面效果代码
2012/09/17 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
js中this对象用法分析
2018/01/05 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
详解react-refetch的使用小例子
2019/02/15 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
python版本五子棋的实现代码
2018/12/11 Python
Python按钮的响应事件详解
2019/03/04 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
细说NumPy数组的四种乘法的使用
2020/12/18 Python
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
html5读取本地文件示例代码
2014/04/22 HTML / CSS
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
如何查询Oracle数据库中已经创建的索引
2013/10/11 面试题
应聘美工求职信
2013/11/07 职场文书
十周年庆典策划方案
2014/06/03 职场文书
超市促销活动总结
2014/07/01 职场文书
幼儿园六一儿童节演讲稿
2015/03/19 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
商标侵权律师函
2015/05/27 职场文书
小程序实现文字循环滚动动画
2021/06/14 Javascript