天天看點

php判斷密碼強度實作和JS密碼強度驗證

功能:判斷密碼強度
 
 
 

  結果形式:
 
 
 

  打分(滿分為10)
 
 
 
代碼:
 
 

              $score = 0;
  
 
  

              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 "<br>";
  
 
  

              echo $score;      
<script type="text/javascript"> 
var $ = function(v){return document.getElementById(v);} 
function isSecurity(v){ 
if (v.length < 3) { iss.reset();return;} 
var lv = -1; 
if (v.match(/[a-z]/ig)){lv++;} 
if (v.match(/[0-9]/ig)){lv++;} 
if (v.match(/(.[^a-z0-9])/ig)){lv++;} 
if (v.length < 6 && lv > 0){lv--;} 
iss.reset(); 
switch(lv) { 
case 0: 
iss.level0(); 
break; 
case 1: 
iss.level1(); 
break; 
case 2: 
iss.level2(); 
break; 
default: 
iss.reset(); 
} 
} 
var iss = { 
color:["CC0000","FFCC33","66CC00","CCCCCC"], 
text:["弱","中","強"], 
width:["50","100","150","10"], 
reset:function(){ 
$("B").style.backgroundColor = iss.color[3]; 
$("B").style.width = iss.width[3]; 
$("A").innerHTML = "驗證試中"; 
}, 
level0:function(){ 
$("B").style.backgroundColor = iss.color[0]; 
$("B").style.width = iss.width[0]; 
$("A").innerHTML = "較弱"; 
}, 
level1:function(){ 
$("B").style.backgroundColor = iss.color[1]; 
$("B").style.width = iss.width[1]; 
$("A").innerHTML = "中"; 
}, 
level2:function(){ 
$("B").style.backgroundColor = iss.color[2]; 
$("B").style.width = iss.width[2]; 
$("A").innerHTML = "高強"; 
} 
} 
</script> 
<input type="password" name="password" size="25" maxlength="20" οnkeyup="isSecurity(this.value);"> 
<font class="red" id="A">密碼強度</font> 
<table height="8" border="1" align="left" cellpadding="0" cellspacing="0" bordercolor="#EEEEEE" style="border-collapse:collapse;"> 
<tr> 
<td bgcolor="#EEEEEE" width="1" align="center" valign="middle" id="B"></td> 
</tr> 
</table>