如何验证输入密码的强弱度
来源:互联网 发布:qq数据抓包 编辑:程序博客网 时间:2024/05/04 08:03
//密码强度; www.jsphelp.com
function PasswordStrength(showed){
this.showed = (typeof(showed) == "boolean")?showed:true;
this.styles = new Array();
this.styles[0] = {backgroundColor:"#EBEBEB",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #BEBEBE",borderBottom:"solid 1px #BEBEBE"};
this.styles[1] = {backgroundColor:"#FF4545",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #BB2B2B",borderBottom:"solid 1px #BB2B2B"};
this.styles[2] = {backgroundColor:"#FFD35E",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #E9AE10",borderBottom:"solid 1px #E9AE10"};
this.styles[3] = {backgroundColor:"#95EB81",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #3BBC1B",borderBottom:"solid 1px #3BBC1B"};
this.labels= ["弱","中","强"];
this.divName = "pwd_div_"+Math.ceil(Math.random()*100000);
this.spanMsg = "";
// this.spanMsg = "<a href='javascript:;' onclick='window.open(/"pwdteacher.htm/",/"pwdteacher/",/"width=500,height=300/")'><font style='line-height:25px;font-family: Courier New, Courier, mono;font-size: 12px;color:#ff0000;'>教你如何设置一个更安全的密码</font></a>";
this.minLen = 5;
this.width = "150px";
this.height = "16px";
this.content = "";
this.selectedIndex = 0;
this.init();
}
PasswordStrength.prototype.init = function(){
var s = '<table cellpadding="0" id="'+this.divName+'_table" cellspacing="0" style="width:'+this.width+';height:'+this.height+';">';
s += '<tr>';
for(var i=0;i<3;i++){
s += '<td id="'+this.divName+'_td_'+i+'" width="33%" align="center"><span style="font-size:1px"> </span><span id="'+this.divName+'_label_'+i+'" style="font-family: Courier New, Courier, mono;font-size: 12px;color: #999999;">'+this.labels[i]+'</span></td>';
}
s += '</tr>';
s += '</table>';
s += '<span id="'+this.divName+'_span_msg" style="display:none;">';
s += this.spanMsg;
s += '</span>';
this.content = s;
if(this.showed){
document.write(s);
this.copyToStyle(this.selectedIndex);
}
}
PasswordStrength.prototype.copyToObject = function(o1,o2){
for(var i in o1){
o2[i] = o1[i];
}
}
PasswordStrength.prototype.copyToStyle = function(id){
this.selectedIndex = id;
for(var i=0;i<3;i++){
if(i == id-1){
this.$(this.divName+"_label_"+i).style.color = "#000000";
}else{
this.$(this.divName+"_label_"+i).style.color = "#999999";
}
}
for(var i=0;i<id;i++){
this.copyToObject(this.styles[id],this.$(this.divName+"_td_"+i).style);
}
for(;i<3;i++){
this.copyToObject(this.styles[0],this.$(this.divName+"_td_"+i).style);
}
}
PasswordStrength.prototype.$ = function(s){
return document.getElementById(s);
}
PasswordStrength.prototype.setSize = function(w,h){
this.width = w;
this.height = h;
}
PasswordStrength.prototype.setMinLen = function(n){
if(isNaN(n)){
return ;
}
n = Number(n);
if(n>1){
this.minLen = n;
}
}
PasswordStrength.prototype.setStyles = function(){
if(arguments.length == 0){
return ;
}
for(var i=0;i<arguments.length && i < 4;i++){
this.styles[i] = arguments[i];
}
this.copyToStyle(this.selectedIndex);
}
PasswordStrength.prototype.write = function(s){
if(this.showed){
return ;
}
var n = (s == 'string') ? this.$(s) : s;
if(typeof(n) != "object"){
return ;
}
n.innerHTML = this.content;
this.copyToStyle(this.selectedIndex);
}
PasswordStrength.prototype.update = function(s)
{
if(s.length < this.minLen){
this.copyToStyle(0);
return;
}
var ls = this.getLevel(s);
switch(ls) {
case 1:
this.$(this.divName+"_span_msg").style.display = "";
this.copyToStyle(1);
break;
case 2:
this.$(this.divName+"_span_msg").style.display = "";
this.copyToStyle(2);
break;
case 3:
this.$(this.divName+"_span_msg").style.display = "none";
this.copyToStyle(3);
break;
default:
this.$(this.divName+"_span_msg").style.display = "none";
this.copyToStyle(0);
}
}
PasswordStrength.prototype.getLevel = function(s)
{
var ls = 0;
if (s.length < 6){
return 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 > 1){
ls--;
}
if (s.length >= 8 && ls == 2){
ls++;
}
if (!this.samePwd(s) && ls > 1){
ls--;
}
if (!this.increasePwd(s) && ls > 1){
ls--;
}
if (!this.descendingPwd(s) && ls > 1){
ls--;
}
return ls;
}
PasswordStrength.prototype.samePwd = function(s)
{
var errorLength = 0;
var tmpLength = 1;
var i = 0;
for(i=1;i<s.length;i++)
{
if(!isNaN(s.substr(i,1)) && !isNaN(s.substr(i-1,1)))
{
if(s.substr(i,1) == s.substr(i-1,1))
{
tmpLength++;
}
else
{
tmpLength = 1;
}
if(tmpLength > errorLength)
{
errorLength = tmpLength;
}
}
}
if(errorLength>=(s.length/2))
{
return false;
}
else
{
return true;
}
}
PasswordStrength.prototype.increasePwd = function(s)
{
var errorLength = 0;
var tmpLength = 1;
var i = 0;
for(i=1;i<s.length;i++)
{
if(!isNaN(s.substr(i,1)) && !isNaN(s.substr(i-1,1)))
{
if(Number(s.substr(i,1)) == Number(s.substr(i-1,1)) + 1)
{
tmpLength++;
}
else
{
tmpLength = 1;
}
if(tmpLength > errorLength)
{
errorLength = tmpLength;
}
}
}
if(errorLength>=(s.length/2))
{
return false;
}
else
{
return true;
}
}
PasswordStrength.prototype.descendingPwd = function(s)
{
var errorLength = 0;
var tmpLength = 1;
var i = 0;
for(i=1;i<s.length;i++)
{
if(!isNaN(s.substr(i,1)) && !isNaN(s.substr(i-1,1)))
{
if(Number(s.substr(i,1)) == Number(s.substr(i-1,1)) - 1)
{
tmpLength++;
}
else
{
tmpLength = 1;
}
if(tmpLength > errorLength)
{
errorLength = tmpLength;
}
}
}
if(errorLength>=(s.length/2))
{
return false;
}
else
{
return true;
}
}
- 如何验证输入密码的强弱度
- jquery 验证密码输入强弱度
- 用JavaScript验证密码的强弱
- 密码强弱的判断
- Jquery特效四:密码强弱验证
- Jquery判断密码的强弱
- Jquery 显示密码的强弱
- 判断密码强弱的 js
- jQuery如何验证两次输入的密码是否一致
- 测测你的密码需要多久被破译!密码强弱度的正则判断
- 密码强弱度检测万能插件
- 关于密码输入与验证的问题
- 简单的input输入密码验证!
- 判断密码强弱
- javascript 设置密码强弱
- JS检查密码强弱
- 【QD20150908】密码强弱监测
- js 密码强弱判断
- iBatis学习心得
- 随机访问类(RandomAccessFile)
- HP大中华区总裁孙振耀谈退休并畅谈人生
- javascript split的用法
- 你的成功在于你每天养成的习惯
- 如何验证输入密码的强弱度
- 一封终于送达的情书1
- mysql alter
- jsp/get/set/struts.xml存取
- C#编写的计算器
- 利用.net的强大功能发送email
- 一封终于送达的情书2
- Java串口通讯
- hello world