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新手上路(十三)
Oct 09 PHP
相对路径转化成绝对路径
Apr 10 PHP
session在PHP大型web应用中的使用
Jun 25 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
Jan 17 PHP
destoon二次开发模板及调用语法汇总
Jun 21 PHP
浅谈thinkphp的实例化模型
Jan 04 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
May 06 PHP
PHP大文件分片上传的实现方法
Oct 28 PHP
PHP配置ZendOpcache插件加速
Feb 14 PHP
php实现商城购物车的思路和源码分析
Jul 23 PHP
XAMPP升级PHP版本实现步骤解析
Sep 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版(3)
2006/10/09 PHP
PHP与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
php和editplus正则表达式去除空白行
2015/04/17 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
详解vue 兼容IE报错解决方案
2018/12/29 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
Python MySQLdb Linux下安装笔记
2015/05/09 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
Python中单例模式总结
2018/02/20 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
python文件操作seek()偏移量,读取指正到指定位置操作
2020/07/05 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
前端使用canvas生成盲水印的加密解密的实现
2020/12/16 HTML / CSS
美国宠物商店:Wag.com
2016/10/25 全球购物
阿迪达斯印度官方商城:adidas India
2017/03/26 全球购物
四风问题对照检查材料
2014/09/22 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android
iOS 16进一步确认,一共支持16款iPhone
2022/04/28 数码科技