当前位置 : 主页 > 网络编程 > PHP >

php计算密码强度

来源:互联网 收集:自由互联 发布时间:2021-07-03
下面的php代码用于测试给定密码的强度,最高强度为100 ?php/** * * @param String $string * @return float * * Returns a float between 0 and 100. The closer the number is to 100 the * the stronger password is; further from 1

下面的php代码用于测试给定密码的强度,最高强度为100

<?php
/**
 * 
 * @param String $string
 * @return float
 * 
 * Returns a float between 0 and 100. The closer the number is to 100 the
 * the stronger password is; further from 100 the weaker the password is.
 */
function password_strength($string){
    $h    = 0;
    $size = strlen($string);
    foreach(count_chars($string, 1) as $v){
        $p = $v / $size;
        $h -= $p * log($p) / log(2);
    }
    $strength = ($h / 4) * 100;
    if($strength > 100){
        $strength = 100;
    }
    return $strength;
}
 
var_dump(password_strength("Correct Horse Battery Staple"));
echo "<br>";
var_dump(password_strength("Super Monkey Ball"));
echo "<br>";
var_dump(password_strength("Tr0ub4dor&3"));
echo "<br>";
var_dump(password_strength("abc123"));
echo "<br>";
var_dump(password_strength("sweet"));
网友评论