- 浏览: 414291 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (202)
- Oracle (35)
- MsSQL (10)
- MySQL (8)
- Jsp (7)
- Java 基础 (21)
- 零星点缀 (20)
- PowerDesigner (3)
- dotNet (5)
- Hibernate (8)
- 搜索技术 (3)
- Linux (18)
- jQuery (4)
- POI/excel/word (2)
- javascript (6)
- PHP (4)
- JSTL (3)
- winows 操作系统 (6)
- HTML基础 (2)
- 网络兼职 (3)
- spring (7)
- 人生 (2)
- 网络协议之Http (3)
- JDBC (1)
- FSO(FileSystemObject)技术 (3)
- css样式 (1)
- EnterpriseDb (2)
- VMware (1)
- Android (1)
- 数据转换工具=》 (1)
- Oracle-->statspack (2)
- Oracle==>性能 (1)
- Greenplum (1)
- 库的转换 (1)
- DOS (1)
最新评论
-
青春的、脚步:
xingmei_ok 写道解密失败。。。。原始:aMD5后:0 ...
java的MD5加密、解密 -
xingmei_ok:
New_Mao_Er 写道看着标题我就蛋疼了,md5 是一个摘 ...
java的MD5加密、解密 -
New_Mao_Er:
看着标题我就蛋疼了,md5 是一个摘要算法,是无法解密的,如果 ...
java的MD5加密、解密 -
xingmei_ok:
解密失败。。。。
原始:a
MD5后:0cc175b9c0f ...
java的MD5加密、解密 -
yinxueyuan122:
[b][/b][size=xx-small][/siz ...
java的MD5加密、解密
密码强度提示是最近流行的一个功能,但是99%的案例都忽略了检测机制。
基本上都是把字符分成四类:数字、小写英文、大写英文、符号,然后按照组合复杂度来直接判断强弱程度:
单一,是弱密码。
两两组合,是中密码。
超过两种组合,是强密码。
方案一
方案二
方案三
方案四
from:http://itlife365.com/blog/post/password-test.php
基本上都是把字符分成四类:数字、小写英文、大写英文、符号,然后按照组合复杂度来直接判断强弱程度:
单一,是弱密码。
两两组合,是中密码。
超过两种组合,是强密码。
方案一
<SCRIPT language=javascript> //CharMode函数 //测试某个字符是属于哪一类. function CharMode(iN) { if (iN>=48 && iN <=57) //数字 return 1; if (iN>=65 && iN <=90) //大写字母 return 2; if (iN>=97 && iN <=122) //小写 return 4; else return 8; //特殊字符 } //bitTotal函数 //计算出当前密码当中一共有多少种模式 function bitTotal(num) { modes=0; for (i=0;i<4;i++) { if (num & 1) modes++; num>>=1; } return modes; } //checkStrong函数 //返回密码的强度级别 function checkStrong(sPW) { if (sPW.length<=4) return 0; //密码太短 Modes=0; for (i=0;i<sPW.length;i++) { //测试每一个字符的类别并统计一共有多少种模式. Modes|=CharMode(sPW.charCodeAt(i)); } return bitTotal(Modes); } //pwStrength函数 //当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色 function pwStrength(pwd) { O_color="#eeeeee"; L_color="#FF0000"; M_color="#FF9900"; H_color="#33CC00"; if (pwd==null||pwd=="") { Lcolor=Mcolor=Hcolor=O_color; } else { S_level=checkStrong(pwd); switch(S_level) { case 0: Lcolor=Mcolor=Hcolor=O_color; case 1: Lcolor=L_color; Mcolor=Hcolor=O_color; break; case 2: Lcolor=Mcolor=M_color; Hcolor=O_color; break; default: Lcolor=Mcolor=Hcolor=H_color; } } document.getElementById("strength_L").style.background=Lcolor; document.getElementById("strength_M").style.background=Mcolor; document.getElementById("strength_H").style.background=Hcolor; return; } </SCRIPT> <FORM name="form1" action=""><P> 输入密码:</P><P> <INPUT onblur=pwStrength(this.value) onkeyup=pwStrength(this.value) type=password size=10 value=""> <BR> 密码强度: </P><P> <TABLE style="DISPLAY: inline" borderColor=#cccccc height=23 cellSpacing=0 cellPadding=1 width=217 border=1> <TBODY> <TR align=middle bgColor=#eeeeee> <TD id=strength_L width="33%">弱</TD> <TD id=strength_M width="33%">中</TD> <TD id=strength_H width="33%">强</TD> </TR> </TBODY> </TABLE> </P><P> </P><P> </P></FORM> <PRE></PRE>
方案二
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>密码</title> <script type="text/javascript"> function chkpwd(obj){ var t=obj.value; var id=getResult(t); //定义对应的消息提示 var msg=new Array(4); msg[0]="密码过短"; msg[1]="密码强度差"; msg[2]="密码强度良好"; msg[3]="密码强度高"; var sty=new Array(4); sty[0]=-45; sty[1]=-30; sty[2]=-15; sty[3]=0; var col=new Array(4); col[0]="gray"; col[1]="red"; col[2]="#ff6600"; col[3]="Green"; //设置显示效果 var bImg="http://bbs.blueidea.com/attachments/2006/12/7/pwdlen_dSIPeEGQWxfO.gif";//一张显示用的图片 var sWidth=300; var sHeight=15; var Bobj=document.getElementById("chkResult"); Bobj.style.fontSize="12px"; Bobj.style.color=col[id]; Bobj.style.width=sWidth + "px"; Bobj.style.height=sHeight + "px"; Bobj.style.lineHeight=sHeight + "px"; Bobj.style.background="url(" + bImg + ") no-repeat left " + sty[id] + "px"; Bobj.style.textIndent="20px"; Bobj.innerHTML="检测提示:" + msg[id]; } //定义检测函数,返回0/1/2/3分别代表无效/差/一般/强 function getResult(s){ if(s.length < 4){ return 0; } var ls = 0; if (s.match(/[a-z]/ig)){ ls++; } if (s.match(/[0-9]/ig)){ ls++; } if (s.match(/(.[^a-z0-9])/ig)){ ls++; } if (s.length < 6 && ls > 0){ ls--; } return ls } </script> <style type="text/css"> body{ font-size:12px; font-family: Arial, Helvetica, sans-serif; margin:0; } form{ margin:2em; } #chkResult{margin-left:53px;height:15px;} </style> </head> <body> <form name="form1"> <label for="pwd">用户密码</label> <input type="password" name="pwd" onblur="chkpwd(this)" /> <div id="chkResult"></div> <label for="pwd2">重复密码</label> <input type="password" name="pwd2" /> </form> </body> </html>
方案三
<html> <body> <form id="myform"> <h1>Password Strength Meter - Demo</h1> <script type="text/javascript" s> // Password strength meter v1.0 // Matthew R. Miller - 2007 // www.codeandcoffee.com // Based off of code from http://www.intelligent-web.co.uk // Settings // -- Toggle to true or false, if you want to change what is checked in the password var bCheckNumbers = true; var bCheckUpperCase = true; var bCheckLowerCase = true; var bCheckPunctuation = true; var nPasswordLifetime = 365; // Check password function checkPassword(strPassword) { // Reset combination count nCombinations = 0; // Check numbers if (bCheckNumbers) { strCheck = "0123456789"; if (doesContain(strPassword, strCheck) > 0) { nCombinations += strCheck.length; } } // Check upper case if (bCheckUpperCase) { strCheck = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; if (doesContain(strPassword, strCheck) > 0) { nCombinations += strCheck.length; } } // Check lower case if (bCheckLowerCase) { strCheck = "abcdefghijklmnopqrstuvwxyz"; if (doesContain(strPassword, strCheck) > 0) { nCombinations += strCheck.length; } } // Check punctuation if (bCheckPunctuation) { strCheck = ";:-_=+\|//?^&!.@$?*()%~<>{}[]"; if (doesContain(strPassword, strCheck) > 0) { nCombinations += strCheck.length; } } // Calculate // -- 500 tries per second => minutes var nDays = ((Math.pow(nCombinations, strPassword.length) / 500) / 2) / 86400; // Number of days out of password lifetime setting var nPerc = nDays / nPasswordLifetime; return nPerc; } // Runs password through check and then updates GUI function runPassword(strPassword, strFieldID) { // Check password nPerc = checkPassword(strPassword); // Get controls var ctlBar = document.getElementById(strFieldID + "_bar"); var ctlText = document.getElementById(strFieldID + "_text"); if (!ctlBar || !ctlText) return; // Set new width var nRound = Math.round(nPerc * 100); if (nRound < (strPassword.length * 5)) { nRound += strPassword.length * 5; } if (nRound > 100) nRound = 100; ctlBar.style.width = nRound + "%"; // Color and text if (nRound > 95) { strText = "极佳"; strColor = "#3bce08"; } else if (nRound > 75) { strText = "很好"; strColor = "orange"; } else if (nRound > 50) { strText = "一般"; strColor = "#ffd801"; } else { strColor = "red"; strText = "极差"; } ctlBar.style.backgroundColor = strColor; ctlText.innerHTML = "<span style='color: " + strColor + ";'>" + strText + "</span>"; } // Checks a string for a list of characters function doesContain(strPassword, strCheck) { nCount = 0; for (i = 0; i < strPassword.length; i++) { if (strCheck.indexOf(strPassword.charAt(i)) > -1) { nCount++; } } return nCount; } </script> <b>Password:</b> <br /> <input type="password" id="mypassword" name="mypassword" onkeyup="runPassword(this.value, 'mypassword');" /> <br /> <br /> <b>Password Strength:</b> <br /> <div style="width: 100px;"> <div id="mypassword_text" style="font-size: 10px;"></div> <div id="mypassword_bar" style="font-size: 1px; height: 2px; width: 0px; border: 1px solid white;"></div> </div> </form> </body> </html>
方案四
<html> <title>密码强度计算-www.codefans.net</title> <head> <style type="text/css"> <!-- .text { height: 16px; width: 160px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #999999; border-right-color: #F0F0F0; border-bottom-color: #F0F0F0; border-left-color: #999999; } .style1 {font-size: 12px} .m { background-image: url(image/m.gif); background-repeat: no-repeat; height: 15px; width: 158px; } .r { background-image: url(image/r.gif); background-repeat: no-repeat; height: 15px; width: 158px; } .z { background-image: url(image/z.gif); background-repeat: no-repeat; height: 15px; width: 158px; } .q { background-image: url(image/q.gif); background-repeat: no-repeat; height: 15px; width: 158px; } .style5 {font-size: 12px; color: #FF0000; } .style6 {font-size: 12px; color: #F1F1F1; } .style7 {font-size: 12px; color: #F1F1F1; } .style8 {font-size: 12px; color: green; } .style9 {font-size: 12px; color: red; } --> </style> </head> <script language=javascript> function CharMode(iN){ if (iN>=48 && iN <=57) //数字 return 1; if (iN>=65 && iN <=90) //大写字母 return 2; if (iN>=97 && iN <=122) //小写 return 4; else return 8; //特殊字符 } function bitTotal(num){ modes=0; for (i=0;i<5;i++){ if (num & 1) modes++; num>>>=1; } return modes; } function checkStrong(sPW){ if (sPW.length<=5) return 0; //密码太短 Modes=0; for (i=0;i<sPW.length;i++){ Modes|=CharMode(sPW.charCodeAt(i)); } return bitTotal(Modes); } function pwStrength(pwd,vImg,vImgs,ilength){ if(pwd.length<=0){ document.getElementById(vImgs).innerHTML="<span style=color:red;font-size:12px>"+16+"</span>"; } else{ document.getElementById(vImgs).innerHTML="<span style=color:red;font-size:12px>"+(16-pwd.length)+"</span>"; } if (pwd==null||pwd==''){ document.getElementById(vImg).className="m"; //document.getElementById(ilength).className="style6"; } else{ S_level=checkStrong(pwd); switch(S_level){ case 0: document.getElementById(vImg).className="m"; //document.getElementById(ilength).className="style6"; break; case 1: document.getElementById(vImg).className="r"; //document.getElementById(ilength).className="style7"; break; case 2: document.getElementById(vImg).className="z"; //document.getElementById(ilength).className="style8"; break; default: document.getElementById(vImg).className="q"; //document.getElementById(ilength).className="style9"; } } return; } </script> <body> <div align="center"> <p> <br> </p> <form name="form1" method="post" action=""> <table width="240" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="69" height="24"> <div align="right" class="style1">密 码:</div></td> <td width="171"><div align="center"> <input name="str1" type="password" class="text" onKeyUp="pwStrength(this.value,'img','imgs','ilength')" value="" maxlength="16" > </div></td> </tr> <tr> <td height="24"> <div align="right" class="style1">密码强度:</div></td> <td height="19"><div align="center"> <table width="160" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center" valign="middle" class="m" id="img"> <table width="90%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="46%"><div align="right" class="style6" id="ilength"></div></td> <td width="14%"> </td> <td width="40%" id="imgs"><span class="style5">16</span></td> </tr> </table></td> </tr> </table> </div></td> </tr> </table> </form> </div> </body> </html>
from:http://itlife365.com/blog/post/password-test.php
发表评论
-
Struts2+FlashFileUpload文件上传并生成缩略图和添加水印(收藏)
2010-07-20 13:50 2054以前用过SWFUpload ,功能确实很强大。javaeye上 ... -
文字居右对齐比较
2010-05-11 17:49 1186<tr><td colspan =" ... -
tomcat集群和负载均衡的实现(在同一台 简单记录)
2010-03-10 17:09 1021tomcat集群和负载均衡的实现(在同一台 简单记录) 查看 ... -
session功能实现原理(转载)
2010-03-10 12:56 916HTTP协议(http://www.w3.org/Protoc ... -
eshopcms 开源下载地址
2010-01-24 20:34 2005eshopcms 开源下载地址: http://code.go ... -
Struts,Hibernate,Spring整合的重点在于配置文件
2010-01-05 09:33 1577本人在写作开发者突击和《高手真经——Java Web核心框架》 ...
相关推荐
扫描802.11无线网络,并显示并检测每个网络信息,其中包括接收信号强度指示、渠道、电源模式、安全模式和传输率等。在这个新的版本中,你可以通过扫描很方便的发现每个网络的接入点位置,信号强度,并可以自动选择...
扫描802.11无线网络,并显示并检测每个网络信息,其中包括接收信号强度指示、渠道、电源模式、安全模式和传输率等。在这个新的版本中,你可以通过扫描很方便的发现每个网络的接入点位置,信号强度,并可以自动选择...
扫描802.11无线网络,并显示并检测每个网络信息,其中包括接收信号强度指示、渠道、电源模式、安全模式和传输率等。在这个新的版本中,你可以通过扫描很方便的发现每个网络的接入点位置,信号强度,并可以自动选择...
扫描802.11无线网络,并显示并检测每个网络信息,其中包括接收信号强度指示、渠道、电源模式、安全模式和传输率等。在这个新的版本中,你可以通过扫描很方便的发现每个网络的接入点位置,信号强度,并可以自动选择...
JavaScript密码强度检测代码; JavaScript判断输入框中是否包含中文; JavaScript判断远程图片是否存在; Js+Css图片切换,带缩略图响应鼠标滑过; JS图片滚动代码(无缝、平滑); 纯CSS实现链接提示(学习层定位); 适合...
扫描802.11无线网络,并显示并检测每个网络信息,其中包括接收信号强度指示、渠道、电源模式、安全模式和传输率等。在这个新的版本中,你可以通过扫描很方便的发现每个网络的接入点位置,信号强度,并可以自动选择...
笔记本电脑的朋友可以免费上网了 破解无线网络的密码的软件 如果大家现在没有笔记本电脑的话,...扫描802.11无线网络,并显示并检测每个网络信息,其中包括接收信号强度指示、渠道、电源模式、安全模式和传输率等。
扫描802.11无线网络,并显示并检测每个网络信息,其中包括接收信号强度指示、渠道、电源模式、安全模式和传输率等。在这个新的版本中,你可以通过扫描很方便的发现每个网络的接入点位置,信号强度,并可以自动选择...
扫描802.11无线网络,并显示并检测每个网络信息,其中包括接收信号强度指示、渠道、电源模式、安全模式和传输率等。在这个新的版本中,你可以通过扫描很方便的发现每个网络的接入点位置,信号强度,并可以自动选择...
检测口令安全性的方法包括查看密码策略和尝试telnet登录验证密码强度。 这些配置规范旨在提高H3C三层交换机的安全性,防止未授权访问、恶意攻击和数据泄露。网络管理员应当严格按照这些规范进行配置,同时定期审计...
扫描802.11无线网络,并显示并检测每个网络信息,其中包括接收信号强度指示、渠道、电源模式、安全模式和传输率等。在这个新的版本中,你可以通过扫描很方便的发现每个网络的接入点位置,信号强度,并可以自动选择...
扫描802.11无线网络,并显示并检测每个网络信息,其中包括接收信号强度指示、渠道、电源模式、安全模式和传输率等。在这个新的版本中,你可以通过扫描很方便的发现每个网络的接入点位置,信号强度,并可以自动选择...
扫描802.11无线网络,并显示并检测每个网络信息,其中包括接收信号强度指示、渠道、电源模式、安全模式和传输率等。在这个新的版本中,你可以通过扫描很方便的发现每个网络的接入点位置,信号强度,并可以自动选择...
3. **照明控制**:单片机可以控制照明设备的开关和亮度,根据时间、光线强度或人体感应自动调节,实现节能和人性化照明。 4. **安全监控**:集成摄像头和运动检测传感器,实时监控家庭安全,一旦检测到异常活动,...
包括ISO/IEC 7816规范(智能卡操作标准)、USB技术规范、PKCS#1、PKCS#7、PKCS#11(公钥加密标准)、Microsoft CSP(加密服务提供程序)标准...密码检测规范、网银系统USBKey技术规范以及网上银行系统信息安全通用规范...
设计时要考虑便捷性和安全性,如使用邮箱或手机号验证,以及密码强度检测。 2. **用户主界面**:用户主界面通常展示用户的个人信息、待办事项、个性化推荐等内容,旨在提供一个个性化的起点,方便用户快速访问其感...
1. **注册页面**:测试了输入验证,包括邮箱格式检查、密码强度检测以及验证码的有效性。 2. **登录页面**:验证了用户名或邮箱和密码的匹配性,同时测试了记住密码和忘记密码功能。 3. **创建作品页面**:测试了...
常见的验证包括邮箱或手机号的格式检查,以及密码强度检测。 3.2、用户登录 用户登录接口需实现安全的认证过程,可能包括密码哈希和盐值加密,以及多种登录方式(如邮箱、手机号或第三方账号)的支持。 3.3-3.9、...
1. 注册功能测试:测试用户名的唯一性、邮箱格式验证、密码强度检测等。 2. 站内公告浏览:确保公告的显示、更新和删除功能无误。 3. 观看课堂教程:测试视频播放的流畅性,确认不同格式的视频文件能否正常播放。 4....
- 数据校验:确保数据输入时符合预设规则,如邮箱格式验证、密码强度检测等,防止错误信息进入系统。 在测试过程中,还关注了系统的稳定性、响应速度、兼容性(多浏览器、多设备)和安全性(如SQL注入、XSS攻击...