06-16-2016, 11:53 AM
I share the code for calculate the strong of one password
<pre></pre>
<pre></pre>
<pre>
Code:
entropia_x_caracter= log2(n)
entropia_password= longitud * entropia_x_caracter
<pre>
Code:
function checkPass($pass) {
$count=strlen($pass);
$entropia=0;
// Si el password tiene menos de 6 caracteres
if ($count < 6) {
return 'El password es muy corto.';
}
// Contamos cuantas mayusculas, minusculas, numeros y simbolos existen
$upper = 0; $lower = 0; $numeros = 0; $otros = 0;
for ($i = 0, $j = strlen($pass); $i < $j; $i++) {
$c = substr($pass,$i,1);
if (preg_match('/^[[:upper:]]$/',$c)) {
$upper++;
} elseif (preg_match('/^[[:lower:]]$/',$c)) {
$lower++;
} elseif (preg_match('/^[[:digit:]]$/',$c)) {
$numeros++;
} else {
$otros++;
}
}
// Calculamos la entropia
$entropia= ($upper*4.7)+ ($lower*4.7)+($numeros*3.32)+($otros*6.55);
if ($entropia<28)
{
echo "Password muy debil";
}elseif($entropia<36) {
echo "Password debil";
}elseif($entropia<60) {
echo "Password Razonable";
}elseif($entropia<128) {
echo "Password Fuerte";
}else {
echo "Password Muy Fuerte";
}
return false;
}
echo checkPass("CAPautomovil-2012");
?>