|
- <?php
- $pass_test = array(
- -1 => "无效",
- 0 => "无",
- 1 => "极弱",
- 2 => "较弱",
- 3 => "弱",
- 4 => "中等",
- 5 => "强",
- 6 => "较强",
- 7 => "极强"
- );
- /*
- 密码安全等级检测函数 返回-1~7 数字越高密码越强
- 禁止空格、中文、回车、退格等符号否则返回 -1
- */
- function password_safe_level($password){
- $level=0; //密码安全等级(密码强度)
- $appear_number = 0; //出现数字
- $appear_big_letter = 0; //出现大写字母
- $appear_small_letter = 0; //出现小写字母
- $appear_symbol = 0; //出现特殊符号
- $len = strlen($password);
- if($len <= 0) return 0;
- if($len >= 8) $level++;
- if($len >= 16) $level++;
- if($len >= 24) $level++;
- do {
- $ascii = ord($password[$len-1]);
- if($ascii >= 48 && $ascii <= 57 && !$appear_number){
- $appear_number = 1;
- $level++;
- continue;
- } elseif($ascii >= 65 && $ascii <= 90 && !$appear_big_letter){
- $appear_big_letter = 1;
- $level++;
- continue;
- } elseif($ascii >= 97 && $ascii <= 122 && !$appear_small_letter){
- $appear_small_letter = 1;
- $level++;
- continue;
- } elseif(!$appear_symbol && (($ascii >= 33 && $ascii <=47) || ($ascii >= 58 && $ascii <=64) || ($ascii >= 91 && $ascii <=96) || ($ascii >= 123 && $ascii <=126))){
- $appear_symbol = 1;
- $level++;
- continue;
- } elseif($ascii <= 32 || $ascii >= 127){
- return -1;
- }
- } while(--$len);
- return $level;
- }
- echo $pass_test[password_safe_level("中文密码")]."<br>";
- echo $pass_test[password_safe_level("123 456")]."<br>";
- echo $pass_test[password_safe_level("")]."<br>";
- echo $pass_test[password_safe_level("123456")]."<br>";
- echo $pass_test[password_safe_level("abc123")]."<br>";
- echo $pass_test[password_safe_level("abc123DEF456")]."<br>";
- echo $pass_test[password_safe_level("abc123DEF456!@#")]."<br>";
- echo $pass_test[password_safe_level("abc123DEF456!@#&*(")]."<br>";
- echo $pass_test[password_safe_level("@@@@@@@@abc123DEF456!@#&*(")]."<br>";
- ?>
复制代码 |
|