05-28-2016, 07:39 PM
public algorithm to avoid registration of passwords weak informing the user.
<pre></pre>
<pre>
Code:
<?php
function checkPass($pass) {
$count=strlen($pass);
// 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++;
}
}
// La constraseña debe tener 2 caracteres de al menos 2 diferentes
// tipos
$max = $j - 2;
if ($upper > $max) {
return "El password tiene muchos caracteres en mayusucula.";
}
if ($lower > $max) {
return "El password tiene muchos caracteres en minuscula.";
}
if ($numeros > $max) {
return "El password tiene muchos caracteres numericos.";
}
if ($otros > $max) {
return "El password tiene muchos caracteres especiales.";
}
return false;
}
echo checkPass("password");
?>