`
splinter_2
  • 浏览: 58972 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

密码复杂度管理 密码强度

阅读更多

密码强度提示是最近流行的一个功能,但是99%的案例都忽略了检测机制。

基本上都是把字符分成四类:数字、小写英文、大写英文、符号,然后按照组合复杂度来直接判断强弱程度:

单一,是弱密码。
两两组合,是中密码。
超过两种组合,是强密码。

方案一

Java代码 复制代码
  1.   
  2. <SCRIPT language=javascript>        
  3.       
  4.     //CharMode函数        
  5.     //测试某个字符是属于哪一类.        
  6.     function CharMode(iN)       
  7.     {        
  8.         if (iN>=48 && iN <=57//数字        
  9.         return 1;        
  10.         if (iN>=65 && iN <=90//大写字母        
  11.         return 2;        
  12.         if (iN>=97 && iN <=122//小写        
  13.         return 4;        
  14.         else        
  15.         return 8//特殊字符        
  16.     }        
  17.            
  18.     //bitTotal函数        
  19.     //计算出当前密码当中一共有多少种模式        
  20.     function bitTotal(num)       
  21.     {        
  22.         modes=0;        
  23.         for (i=0;i<4;i++)       
  24.         {        
  25.             if (num & 1) modes++;        
  26.             num>>=1;        
  27.         }        
  28.         return modes;        
  29.     }        
  30.            
  31.     //checkStrong函数        
  32.     //返回密码的强度级别        
  33.            
  34.     function checkStrong(sPW)       
  35.     {        
  36.         if (sPW.length<=4)        
  37.         return 0//密码太短        
  38.         Modes=0;        
  39.         for (i=0;i<sPW.length;i++)       
  40.         {        
  41.             //测试每一个字符的类别并统计一共有多少种模式.        
  42.             Modes|=CharMode(sPW.charCodeAt(i));        
  43.         }        
  44.         return bitTotal(Modes);        
  45.     }        
  46.            
  47.     //pwStrength函数        
  48.     //当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色        
  49.            
  50.     function pwStrength(pwd)       
  51.     {        
  52.         O_color="#eeeeee";        
  53.         L_color="#FF0000";        
  54.         M_color="#FF9900";        
  55.         H_color="#33CC00";        
  56.         if (pwd==null||pwd=="")       
  57.         {        
  58.             Lcolor=Mcolor=Hcolor=O_color;        
  59.         }        
  60.         else      
  61.         {        
  62.             S_level=checkStrong(pwd);        
  63.             switch(S_level)       
  64.             {        
  65.                 case 0:        
  66.                 Lcolor=Mcolor=Hcolor=O_color;        
  67.                 case 1:        
  68.                 Lcolor=L_color;        
  69.                 Mcolor=Hcolor=O_color;        
  70.                 break;        
  71.                 case 2:        
  72.                 Lcolor=Mcolor=M_color;        
  73.                 Hcolor=O_color;        
  74.                 break;        
  75.                 default:        
  76.                 Lcolor=Mcolor=Hcolor=H_color;        
  77.             }        
  78.         }        
  79.         document.getElementById("strength_L").style.background=Lcolor;        
  80.         document.getElementById("strength_M").style.background=Mcolor;        
  81.         document.getElementById("strength_H").style.background=Hcolor;        
  82.         return;        
  83.     }        
  84.       
  85. </SCRIPT>        
  86.       
  87.     <FORM name="form1" action=""><P>        
  88.     输入密码:</P><P>       
  89.     <INPUT onblur=pwStrength(this.value) onkeyup=pwStrength(this.value) type=password size=10 value="">        
  90.     <BR>    密码强度: </P><P>       
  91.     <TABLE style="DISPLAY: inline" borderColor=#cccccc height=23 cellSpacing=0 cellPadding=1 width=217 border=1>   
  92.     <TBODY>   
  93.     <TR align=middle bgColor=#eeeeee>   
  94.     <TD id=strength_L width="33%">弱</TD>   
  95.     <TD id=strength_M width="33%">中</TD>   
  96.     <TD id=strength_H width="33%">强</TD>   
  97.     </TR>   
  98.     </TBODY>   
  99.     </TABLE>        
  100.     </P><P> </P><P> </P></FORM>       
  101. <PRE></PRE>    
<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>  




方案二

Java代码 复制代码
  1.   
  2. <html>   
  3. <head>   
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
  5. <title>密码</title>   
  6. <script type="text/javascript">   
  7.     function chkpwd(obj){   
  8.         var t=obj.value;   
  9.         var id=getResult(t);   
  10.            
  11.         //定义对应的消息提示   
  12.         var msg=new Array(4);   
  13.         msg[0]="密码过短";   
  14.         msg[1]="密码强度差";   
  15.         msg[2]="密码强度良好";   
  16.         msg[3]="密码强度高";   
  17.            
  18.         var sty=new Array(4);   
  19.         sty[0]=-45;   
  20.         sty[1]=-30;   
  21.         sty[2]=-15;   
  22.         sty[3]=0;   
  23.            
  24.         var col=new Array(4);   
  25.         col[0]="gray";   
  26.         col[1]="red";   
  27.         col[2]="#ff6600";   
  28.         col[3]="Green";   
  29.            
  30.         //设置显示效果   
  31.         var bImg="http://bbs.blueidea.com/attachments/2006/12/7/pwdlen_dSIPeEGQWxfO.gif";//一张显示用的图片   
  32.         var sWidth=300;   
  33.         var sHeight=15;   
  34.         var Bobj=document.getElementById("chkResult");   
  35.   
  36.         Bobj.style.fontSize="12px";   
  37.         Bobj.style.color=col[id];   
  38.         Bobj.style.width=sWidth + "px";   
  39.         Bobj.style.height=sHeight + "px";   
  40.         Bobj.style.lineHeight=sHeight + "px";   
  41.         Bobj.style.background="url(" + bImg + ") no-repeat left " + sty[id] + "px";   
  42.         Bobj.style.textIndent="20px";   
  43.         Bobj.innerHTML="检测提示:" + msg[id];   
  44.     }   
  45.        
  46.     //定义检测函数,返回0/1/2/3分别代表无效/差/一般/强   
  47.     function getResult(s){   
  48.         if(s.length < 4){   
  49.             return 0;   
  50.         }   
  51.         var ls = 0;   
  52.         if (s.match(/[a-z]/ig)){   
  53.             ls++;   
  54.         }   
  55.         if (s.match(/[0-9]/ig)){   
  56.             ls++;   
  57.         }   
  58.         if (s.match(/(.[^a-z0-9])/ig)){   
  59.             ls++;   
  60.         }   
  61.         if (s.length < 6 && ls > 0){   
  62.             ls--;   
  63.         }   
  64.         return ls   
  65.     }   
  66. </script>   
  67. <style type="text/css">   
  68. body{   
  69.     font-size:12px;   
  70.     font-family: Arial, Helvetica, sans-serif;   
  71.     margin:0;   
  72. }   
  73. form{   
  74.     margin:2em;   
  75. }   
  76. #chkResult{margin-left:53px;height:15px;}   
  77. </style>   
  78.   
  79. </head>   
  80.   
  81. <body>   
  82. <form name="form1">   
  83.     <label for="pwd">用户密码</label>   
  84.     <input type="password" name="pwd" onblur="chkpwd(this)" />   
  85.     <div id="chkResult"></div>   
  86.     <label for="pwd2">重复密码</label>   
  87.     <input type="password" name="pwd2" />   
  88. </form>   
  89.   
  90. </body>   
  91.   
  92. </html>  
<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>



方案三

Java代码 复制代码
  1. <html>   
  2.     <body>   
  3.         <form id="myform">   
  4.             <h1>Password Strength Meter - Demo</h1>    
  5.             <script type="text/javascript" s>   
  6. // Password strength meter v1.0   
  7. // Matthew R. Miller - 2007   
  8. // www.codeandcoffee.com   
  9. // Based off of code from  http://www.intelligent-web.co.uk   
  10.   
  11. // Settings   
  12. // -- Toggle to true or false, if you want to change what is checked in the password   
  13. var bCheckNumbers = true;   
  14. var bCheckUpperCase = true;   
  15. var bCheckLowerCase = true;   
  16. var bCheckPunctuation = true;   
  17. var nPasswordLifetime = 365;   
  18.   
  19. // Check password   
  20. function checkPassword(strPassword)   
  21. {   
  22.     // Reset combination count   
  23.     nCombinations = 0;   
  24.        
  25.     // Check numbers   
  26.     if (bCheckNumbers)   
  27.     {   
  28.         strCheck = "0123456789";   
  29.         if (doesContain(strPassword, strCheck) > 0)    
  30.         {    
  31.                 nCombinations += strCheck.length;    
  32.             }   
  33.     }   
  34.        
  35.     // Check upper case   
  36.     if (bCheckUpperCase)   
  37.     {   
  38.         strCheck = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";   
  39.         if (doesContain(strPassword, strCheck) > 0)    
  40.         {    
  41.                 nCombinations += strCheck.length;    
  42.             }   
  43.     }   
  44.        
  45.     // Check lower case   
  46.     if (bCheckLowerCase)   
  47.     {   
  48.         strCheck = "abcdefghijklmnopqrstuvwxyz";   
  49.         if (doesContain(strPassword, strCheck) > 0)    
  50.         {    
  51.                 nCombinations += strCheck.length;    
  52.             }   
  53.     }   
  54.        
  55.     // Check punctuation   
  56.     if (bCheckPunctuation)   
  57.     {   
  58.         strCheck = ";:-_=+\|//?^&!.@$?*()%~<>{}[]";   
  59.         if (doesContain(strPassword, strCheck) > 0)    
  60.         {    
  61.                 nCombinations += strCheck.length;    
  62.             }   
  63.     }   
  64.        
  65.     // Calculate   
  66.     // -- 500 tries per second => minutes    
  67.         var nDays = ((Math.pow(nCombinations, strPassword.length) / 500) / 2) / 86400;   
  68.     
  69.     // Number of days out of password lifetime setting   
  70.     var nPerc = nDays / nPasswordLifetime;   
  71.        
  72.     return nPerc;   
  73. }   
  74.     
  75. // Runs password through check and then updates GUI    
  76. function runPassword(strPassword, strFieldID)    
  77. {   
  78.     // Check password   
  79.     nPerc = checkPassword(strPassword);   
  80.        
  81.      // Get controls   
  82.         var ctlBar = document.getElementById(strFieldID + "_bar");    
  83.         var ctlText = document.getElementById(strFieldID + "_text");   
  84.         if (!ctlBar || !ctlText)   
  85.             return;   
  86.            
  87.         // Set new width   
  88.         var nRound = Math.round(nPerc * 100);   
  89.     if (nRound < (strPassword.length * 5))    
  90.     {    
  91.         nRound += strPassword.length * 5;    
  92.     }   
  93.     if (nRound > 100)   
  94.         nRound = 100;   
  95.         ctlBar.style.width = nRound + "%";   
  96.     
  97.     // Color and text   
  98.     if (nRound > 95)   
  99.     {   
  100.         strText = "极佳";   
  101.         strColor = "#3bce08";   
  102.     }   
  103.     else if (nRound > 75)   
  104.     {   
  105.         strText = "很好";   
  106.         strColor = "orange";   
  107.     }   
  108.     else if (nRound > 50)   
  109.     {   
  110.         strText = "一般";   
  111.         strColor = "#ffd801";   
  112.     }   
  113.     else  
  114.     {   
  115.         strColor = "red";   
  116.         strText = "极差";   
  117.     }   
  118.     ctlBar.style.backgroundColor = strColor;   
  119.     ctlText.innerHTML = "<span style='color: " + strColor + ";'>" + strText + "</span>";   
  120. }   
  121.     
  122. // Checks a string for a list of characters   
  123. function doesContain(strPassword, strCheck)   
  124.  {   
  125.         nCount = 0;    
  126.     
  127.     for (i = 0; i < strPassword.length; i++)    
  128.     {   
  129.         if (strCheck.indexOf(strPassword.charAt(i)) > -1)    
  130.         {    
  131.                 nCount++;    
  132.         }    
  133.     }    
  134.     
  135.     return nCount;    
  136. }   
  137.   
  138.   
  139.   
  140. </script>    
  141.   
  142.             <b>Password:</b>   
  143.             <br />    
  144.             <input type="password" id="mypassword" name="mypassword" onkeyup="runPassword(this.value, 'mypassword');" />   
  145.             <br />   
  146.             <br />   
  147.             <b>Password Strength:</b>   
  148.             <br />    
  149.             <div style="width: 100px;">    
  150.                 <div id="mypassword_text" style="font-size: 10px;"></div>   
  151.                 <div id="mypassword_bar" style="font-size: 1px; height: 2px; width: 0px; border: 1px solid white;"></div>    
  152.             </div>   
  153.         </form>   
  154.     </body>   
  155. </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>


方案四

Java代码 复制代码
  1. <html>   
  2. <title>密码强度计算-www.codefans.net</title>   
  3. <head>   
  4. <style type="text/css">   
  5. <!--   
  6. .text {   
  7.     height: 16px;   
  8.     width: 160px;   
  9.     border-top-width: 1px;   
  10.     border-right-width: 1px;   
  11.     border-bottom-width: 1px;   
  12.     border-left-width: 1px;   
  13.     border-top-style: solid;   
  14.     border-right-style: solid;   
  15.     border-bottom-style: solid;   
  16.     border-left-style: solid;   
  17.     border-top-color: #999999;   
  18.     border-right-color: #F0F0F0;   
  19.     border-bottom-color: #F0F0F0;   
  20.     border-left-color: #999999;   
  21. }   
  22. .style1 {font-size: 12px}   
  23. .m {   
  24.     background-image: url(image/m.gif);   
  25.     background-repeat: no-repeat;   
  26.     height: 15px;   
  27.     width: 158px;   
  28. }   
  29. .r {   
  30.     background-image: url(image/r.gif);   
  31.     background-repeat: no-repeat;   
  32.     height: 15px;   
  33.     width: 158px;   
  34. }   
  35. .z {   
  36.     background-image: url(image/z.gif);   
  37.     background-repeat: no-repeat;   
  38.     height: 15px;   
  39.     width: 158px;   
  40. }   
  41. .q {   
  42.     background-image: url(image/q.gif);   
  43.     background-repeat: no-repeat;   
  44.     height: 15px;   
  45.     width: 158px;   
  46. }   
  47. .style5 {font-size: 12px; color: #FF0000; }   
  48. .style6 {font-size: 12px; color: #F1F1F1; }   
  49. .style7 {font-size: 12px; color: #F1F1F1; }   
  50. .style8 {font-size: 12px; color: green; }   
  51. .style9 {font-size: 12px; color: red; }   
  52. -->   
  53. </style>   
  54. </head>   
  55. <script language=javascript>   
  56. function CharMode(iN){   
  57.     if (iN>=48 && iN <=57//数字   
  58.         return 1;    
  59.     if (iN>=65 && iN <=90//大写字母   
  60.         return 2;   
  61.     if (iN>=97 && iN <=122//小写   
  62.         return 4;   
  63.     else  
  64.         return 8//特殊字符   
  65. }   
  66. function bitTotal(num){   
  67.     modes=0;   
  68.     for (i=0;i<5;i++){   
  69.         if (num & 1) modes++;   
  70.         num>>>=1;   
  71.     }   
  72.     return modes;   
  73. }   
  74. function checkStrong(sPW){   
  75.     if (sPW.length<=5)   
  76.         return 0;  //密码太短   
  77.     Modes=0;   
  78.     for (i=0;i<sPW.length;i++){   
  79.         Modes|=CharMode(sPW.charCodeAt(i));   
  80.     }   
  81.     return bitTotal(Modes);    
  82. }      
  83. function pwStrength(pwd,vImg,vImgs,ilength){   
  84.        if(pwd.length<=0){   
  85.             document.getElementById(vImgs).innerHTML="<span style=color:red;font-size:12px>"+16+"</span>";   
  86.        }   
  87.        else{    
  88.             document.getElementById(vImgs).innerHTML="<span style=color:red;font-size:12px>"+(16-pwd.length)+"</span>";   
  89.        }   
  90.     if (pwd==null||pwd==''){   
  91.         document.getElementById(vImg).className="m";   
  92.         //document.getElementById(ilength).className="style6";   
  93.     }      
  94.     else{   
  95.         S_level=checkStrong(pwd);   
  96.         switch(S_level){   
  97.             case 0:   
  98.                 document.getElementById(vImg).className="m";   
  99.                 //document.getElementById(ilength).className="style6";   
  100.                 break;   
  101.             case 1:   
  102.                 document.getElementById(vImg).className="r";   
  103.                 //document.getElementById(ilength).className="style7";   
  104.                 break;   
  105.             case 2:   
  106.                 document.getElementById(vImg).className="z";   
  107.                 //document.getElementById(ilength).className="style8";   
  108.                 break;   
  109.             default:   
  110.                 document.getElementById(vImg).className="q";   
  111.                 //document.getElementById(ilength).className="style9";   
  112.         }   
  113.     }   
  114.     return;   
  115. }   
  116. </script>   
  117. <body>   
  118. <div align="center">   
  119.   <p>    <br>   
  120.   </p>   
  121.   <form name="form1" method="post" action="">   
  122.     <table width="240" border="0" cellspacing="0" cellpadding="0">   
  123.       <tr>   
  124.         <td width="69" height="24">   
  125.         <div align="right" class="style1">密&nbsp;&nbsp;&nbsp; 码:</div></td>   
  126.         <td width="171"><div align="center">   
  127.           <input name="str1" type="password" class="text" onKeyUp="pwStrength(this.value,'img','imgs','ilength')" value="" maxlength="16" >   
  128.         </div></td>   
  129.       </tr>   
  130.       <tr>   
  131.         <td height="24">   
  132.         <div align="right" class="style1">密码强度:</div></td>   
  133.         <td height="19"><div align="center">   
  134.           <table width="160" border="0" cellspacing="0" cellpadding="0">   
  135.               <tr>   
  136.                 <td align="center" valign="middle" class="m" id="img">   
  137.                     <table width="90%"  border="0" cellspacing="0" cellpadding="0">   
  138.                       <tr>   
  139.                         <td width="46%"><div align="right" class="style6" id="ilength"></div></td>   
  140.                         <td width="14%">&nbsp;</td>   
  141.                         <td width="40%" id="imgs"><span class="style5">16</span></td>   
  142.                       </tr>   
  143.                 </table></td>   
  144.               </tr>   
  145.           </table>   
  146.         </div></td>   
  147.       </tr>   
  148.     </table>   
  149.   </form>   
  150. </div>   
  151. </body>   
  152. </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: #FF0

  


  
分享到:
评论

相关推荐

    取消Win2008密码复杂度

    因此,了解如何取消Win2008的密码复杂度要求对于系统管理员来说是一项实用技能。 #### 二、取消Win2008密码复杂度的具体步骤 ##### 2.1 登陆Win2008计算机 - **步骤**:首先,使用具有管理员权限的账户登录到...

    漂亮表单验证和密码强度的验证

    为了实现这些策略,可以编写JavaScript函数来检测密码是否满足条件,并通过动态修改密码强度指示器(如`vr_sd_999.gif`这样的图片)来实时反馈。同时,也可以引入第三方库,如zxcvbn,它能根据密码的复杂度给出评分...

    Ubuntu修改密码及密码复杂度策略设置方法

    在Ubuntu操作系统中,管理和保护用户账户的安全性至关重要,这通常涉及到定期修改密码以及实施密码复杂度策略。本文将详细介绍如何在Ubuntu上修改密码以及设置密码复杂度策略。 首先,我们来讨论如何修改密码。在...

    单用户步骤和修改root密码

    需要注意的是,密码复杂度有较高的要求:至少8位,且必须包含数字和字母。为了提高安全性,建议使用更复杂的组合,例如大写字母、小写字母、数字以及特殊符号。 3. **确认密码**:输入新密码后,系统会要求再次输入...

    漂亮的jsp密码强度检测

    jsp密码强度检测jsp密码强度检测jsp密码强度检测

    C#实现密码强度和密码强度的正则

    很多时候都要实现密码强度的.我们登录等等都要实现.你可以看看

    操作系统安全:密码复杂度设置.pptx

    密码复杂度设置是确保用户密码强度的关键措施,它通过限制密码的长度、过期时间以及复杂性要求,防止轻易被破解。 在Linux系统中,密码复杂度的设置通常涉及到两个主要文件的配置:`/etc/login.defs` 和 `/etc/pam....

    asp.net中密码强度显示代码

    检查密码复杂度的逻辑 ... // 更新显示 $("#passwordStrength").text("密码强度: " + strengthScore + "/10"); }); ``` 3. **CSS样式**:根据得分改变进度条的宽度或颜色,以直观地表示密码强度。 ```css #...

    网页模板——JS实现随机密码生成器可控制密码复杂度.zip

    网页模板——JS实现随机密码生成器可控制密码复杂度是一个基于JavaScript技术的实用工具,用于生成自定义复杂度的随机密码。这个模板提供了一个用户友好的界面,允许用户根据自己的安全需求选择密码的长度和复杂性,...

    测试密码强度.docx

    密码强度测试的重要性在于,它可以帮助开发者和管理员了解应用程序对密码强度的控制是否严格,从而为用户账户提供更好的保护。同时,密码强度测试也可以帮助开发者和管理员了解应用程序中的安全漏洞,并进行相应的...

    密码强度的验证 asp.net

    根据提供的文件信息,本文将详细解析“密码强度的验证 asp.net”这一主题,并深入探讨其在Web安全领域的应用。 ### 一、密码强度验证的重要性 在网络安全领域,密码是保护用户账户的第一道防线。一个强健的密码...

    输入一个不少于六位的密码,并判断密码强度

    本文将深入探讨如何使用C/C++编程语言来实现一个简单的密码强度检查器,根据标题和描述,我们将创建一个程序,它能接收用户输入的密码并评估其强度。 首先,我们需要理解密码强度的分类标准: 1. **弱密码**:通常...

    正则表达式判断密码强度

    在IT领域,尤其是在网络安全和用户认证方面,密码强度是一个至关重要的概念。正则表达式(Regular Expression)是一种强大的工具,用于在字符串中匹配特定模式,它在这里被用来判断用户设定的密码是否符合一定的强度...

    JS配合Web判断密码强度实例

    ### JS配合Web判断密码强度实例解析 在网络安全领域中,密码强度评估是非常重要的一个环节,它可以帮助用户了解自己设置的密码...此外,还可以进一步增强功能,比如增加密码复杂度建议,帮助用户创建更安全的密码。

    vuepassword一个Vuejs密码输入组件支持显示和强度计算

    其次,该组件整合了Dropbox的zxcvbn库,这是一个强大的密码强度评估工具。zxcvbn能够分析用户输入的密码,根据其复杂性、常见模式和字典匹配等规则,给出一个强度评分。这个评分可以直观地显示给用户,鼓励他们创建...

    jquery密码强度校验

    当然,密码强度校验的算法不止这一种,还可以通过其他手段来增加密码强度的校验复杂度,例如使用NIST标准进行密码强度的评估。 使用jQuery进行密码强度校验的代码片段应该被嵌入到HTML页面中,配合相应的样式和脚本...

    java实现的密码强度检测功能完整示例

    在实际应用中,java实现的密码强度检测功能可以用于各种密码管理系统,例如密码管理软件、身份验证系统等。同时,这种功能也可以应用于web应用程序中,例如注册页面、登录页面等,以提高用户的密码安全性。 java...

    在vuejs中实现基于zxcvbn的密码强度计算

    zxcvbn是一个强大的密码强度估计器,由Dropbox开发,能够分析密码并给出一个评分,帮助用户创建更安全的密码。 首先,你需要了解zxcvbn库的基本原理。它通过分析密码的复杂性,包括但不限于常见单词、数字序列、...

    实现密码强度功能代码

    根据给定文件的信息,我们可以提炼出关于“实现密码强度功能代码”的详细知识点,涉及前端JavaScript编程、正则表达式、CSS样式控制以及密码复杂度评估算法。以下是对这些知识点的深入解析: ### 密码强度功能实现...

Global site tag (gtag.js) - Google Analytics