Voy a mostrar un script con el cual vamos a poder llamar una funcion que permite hacer las siguientes comprobaciones:

  • Que la clave tiene al menos 6 caracteres
  • Que el password tiene como máximo 16 caracteres
  • Que tiene al menos 1 letra minúscula
  • Que al menos tiene 1 letra mayúscula
  • Que tiene al menos un carácter numérico

Para hacer la función en realidad necesitaríamos recibir solamente la clave a ser validada y se devolvería un boleano para decir si es o no válida la contraseña. Pero por mejorarlo un poco, hemos decidido recibir dos parámetros, uno con la propia clave y otro con una variable que recibiremos por referencia y que rellenaremos con el error que se haya detectado, si es que no se validó el password.

La función para validar contraseñas

function validar_clave($clave,&$error_clave){
if(strlen($clave) < 6){
$error_clave = “La clave debe tener al menos 6 caracteres”;
return false;
}
if(strlen($clave) > 16){
$error_clave = “La clave no puede tener más de 16 caracteres”;
return false;
}
if (!preg_match(‘`[a-z]`’,$clave)){
$error_clave = “La clave debe tener al menos una letra minúscula”;
return false;
}
if (!preg_match(‘`[A-Z]`’,$clave)){
$error_clave = “La clave debe tener al menos una letra mayúscula”;
return false;
}
if (!preg_match(‘`[0-9]`’,$clave)){
$error_clave = “La clave debe tener al menos un caracter numérico”;
return false;
}
$error_clave = “”;
return true;
}

Como hemos podido ver, es una función bien simple. Va revisando punto por punto todas las cosas que queremos comprobar en la clave. Usa expresiones regulares bien sencillas para saber si tiene al menos una letra (una expresión para ver si tiene minúsculas y otra para mayúsculas) y al menos un número.

Podríamos añadir o quitar de la función tantas validaciones como deseemos, para que se ajuste a nuestras necesidades. Por ejemplo, si además deseásemos que la contraseña tuviera sólo caracteres alfanuméricos (números y letras), podríamos haber utilizado también la función PHP ctype_alnum(), que recibe un string y devuelve TRUE si sólo encontró números y letras en esa cadena y FALSE si encontró otro tipo de caracteres.

Para probar esta función hemos hecho una página bien simple, que muestra un formulario con un campo password y recibe ese campo para validarlo, mostrando el resultado de la validación y el posible error que se haya encontrado.


<html>
<head>
<title>Validar Password</title>
</head>

<body>
<?

function validar_clave($clave,&$error_clave){
if(strlen($clave) < 6){
$error_clave = “La clave debe tener al menos 6 caracteres”;
return false;
}
if(strlen($clave) > 16){
$error_clave = “La clave no puede tener más de 16 caracteres”;
return false;
}
if (!preg_match(‘`[a-z]`’,$clave)){
$error_clave = “La clave debe tener al menos una letra minúscula”;
return false;
}
if (!preg_match(‘`[A-Z]`’,$clave)){
$error_clave = “La clave debe tener al menos una letra mayúscula”;
return false;
}
if (!preg_match(‘`[0-9]`’,$clave)){
$error_clave = “La clave debe tener al menos un caracter numérico”;
return false;
}
$error_clave = “”;
return true;
}

if ($_POST){
$error_encontrado=””;
if (validar_clave($_POST[“clave”], $error_encontrado)){
echo “PASSWORD VÁLIDO”;
}else{
echo “PASSWORD NO VÁLIDO: ” . $error_encontrado;
}
}

?>
<P>
<form action=”validar-password.php” method=”post”>
Escribe una clave:
<input type=password name=”clave”>
<input type=”submit” value=”Enviar”>
</form>

</body>
</html>

Red Hat, la primera empresa de software libre que factura 1.000 millones Red Hat ha presentado sus resultados correspondientes al año fiscal 2012, que acabó el 29 de febrero, esta semana. Los ingresos alcanzaron los 1.130 m...
700 mil dispositivos Android son activados diariamente No es un secreto para nadie que el crecimiento de Android ha sido brutal, pero cada vez que desde Google nos presentan este tipo de cifras, más de uno...
WordPress 2.8.1 ha sido liberado WordPress 2.8.1, soluciona un importante problema de seguridad que provocaba la eliminación de directorios al actualizarse automáticamente. Además est...
Twitter comienza con la conexión segura https Twitter acaba de dar un importante paso para hacer de su sitio un lugar más seguro: según anunciaron ayer en su blog, a partir de ahora utilizará la c...
Creando Formularios en HTML Formas y Aplicación de Servidor La recabación de datos forma una parte muy importante para cualquier sitio de Internet y esta también se lleva acabo ...
Google, Microsoft y otros acuerdan implementar sistema de “no rastreo” en internet El presidente de Estados Unidos, Barack Obama, presentó una propuesta de regulación para la privacidad en internet, que busca hacerse cargo de las con...
La batería que se carga en 15 minutos y dura una semana Las baterías siguen siendo la pesadilla de los dispositivos móviles, pero una investigación realizada por científicos de la Universidad de Northwester...
Thunderbird 10 El equipo de trabajo del conocido cliente de correo electrónico lanzaba hace apenas un par de días una nueva versión estable del popular Thunderbird. ...
Facebook apoya una campaña de desprestigio a Google A Facebook no se les escapa una. Y a los medios tampoco. Hace apenas unos días, se acaba de destapar un pastel que no beneficia para nada a los chicos...
Compresor de archivos CSS & Javascript Minify and GZip Compress JavaScript & CSS tool es una sencillo compresor online disponible para ser usado por cualquier desarrollador interesado. ...