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 相关文章推荐
加速XP搜索功能堪比vista
Mar 22 PHP
PHP 输出简单动态WAP页面
Jun 09 PHP
php运行出现Call to undefined function curl_init()的解决方法
Nov 02 PHP
PHP函数之日期时间函数date()使用详解
Sep 09 PHP
php实现webservice实例
Nov 06 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
UTF-8正则表达式如何匹配汉字
Aug 03 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
Dec 10 PHP
Yii1.1中通过Sql查询进行的分页操作方法
Mar 16 PHP
Paypal实现循环扣款(订阅)功能
Mar 23 PHP
PHP的curl函数的用法总结
Feb 14 PHP
Laravel 验证码认证学习记录小结
Dec 20 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 表单提交给自己
2008/07/24 PHP
学习discuz php 引入文件的方法DISCUZ_ROOT
2009/06/21 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
php分页函数完整实例代码
2014/09/22 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
XP折叠菜单&amp;仿QQ2006菜单
2006/12/16 Javascript
JS模拟多线程
2007/02/07 Javascript
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
javascript appendChild,innerHTML,join性能比较代码
2009/08/29 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
JavaScript 模拟类机制及私有变量的方法及思路
2013/07/10 Javascript
Javascript 构造函数详解
2014/10/22 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
javascript 闭包详解
2015/02/15 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
vue组件间通信解析
2017/03/01 Javascript
webpack中的热刷新与热加载的区别
2018/04/09 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
2018/12/06 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
python版简单工厂模式
2017/10/16 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
如何在mac环境中用python处理protobuf
2019/12/25 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
Python3爬虫中关于中文分词的详解
2020/07/29 Python
Python eval函数原理及用法解析
2020/11/14 Python
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
即兴演讲稿
2014/01/04 职场文书
服务之星事迹材料
2014/05/03 职场文书
Mysql中mvcc各场景理解应用
2022/08/05 MySQL