Cargando



Generar contraseñas aleatorias con PHP

Te enseñamos como puedes generar claves aleatorias utilizando PHP.


ago 20 2015 11:12
Básico
Cuando construimos aplicaciones una de los aspectos más importantes y que debe tratarse con prioridad es el tema de la seguridad, podemos cubrir este aspecto desde distintos frentes, pero uno de los más básicos y que podemos cubrir en cuestión de minutos son las contraseñas de usuarios en nuestra aplicación.

Las contraseñas le permiten a cada usuario ingresar a cualquier aplicación mediante su perfil, dándole acceso a las funciones que el mismo posee dentro de la misma, y que puede estar segmentado de acuerdo a su permisología y el alcance que tenga en la aplicación.

Para ello es importante que cada contraseña sea lo más segura posible, y que no permita ser vulnerada y mucho menos adivinada por terceros. En estos casos podemos generar una clave aleatoria compuesta que sume altos niveles de seguridad a nuestra aplicación.

Generando contraseñas aleatorias

Vamos a crear dos métodos distintos para la generación de contraseñas, el primero de estos métodos es bastante sencillo y podemos implementarlo en una línea y a pesar que no nos suministra una contraseña 100% segura ayuda a crear una que tiene ciertos estándares de seguridad:
substr(md5(uniqid()), 0, 10);
Aquí nos valemos de varios métodos de PHP para la generación de la contraseña, partiendo desde dentro hacia afuera tenemos primero la función uniqid el cual genera un identificador único, luego con la función md5 calculamos el hash md5 de ese string generado y por último utilizamos substr para obtener una porción de ese string.

El método anterior puede sacarnos de apuros en más de una ocasión pero no es lo suficientemente óptimo, para ello podemos hacer algo mucho más elaborado, veamos:
<?php function generar_password_complejo($largo){
  $cadena_base =  'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
  $cadena_base .= '0123456789' ;
  $cadena_base .= '!@#%^&*()_,./<>?;:[]{}\|=+';

  $password = '';
  $limite = strlen($cadena_base) - 1;

  for ($i=0; $i < $largo; $i++)
    $password .= $cadena_base[rand(0, $limite)];

  return $password;
}?>
Creamos una función para realizar las operaciones para generar nuestra contraseña, la cadena base que vamos a utilizar para generar la contraseña aleatoria la inicializamos tanto con letras, números y caracteres especiales. Establecemos un límite y con un bucle iterativo vamos escogiendo de esta base de manera aleatoria con la función rand y vamos construyendo nuestra contraseña que luego retornaríamos para guardar en Base de Datos o realizar otra operación importante en la aplicación.

Veamos como lucen nuestras contraseñas aleatorias luego de ser ejecutadas varias veces en nuestra aplicación.


Como vemos cada vez que ejecutamos nuestra aplicación una nueva contraseña es generada, debajo de Generar clave 1 tenemos el primer método y en Generar clave 2 tenemos el segundo, que es el más elaborado, aunque de igual forma podemos visualizar que no son contraseñas fáciles de adivinar por lo que nos viene mucho mejor qué el clásico: 123456.

De esta forma ya estaríamos cubriendo un aspecto de seguridad importante en nuestra aplicación, dándonos la posibilidad de concentrarnos en otras funcionalidades al tener una forma práctica y sencilla de asegurar el acceso de los usuarios de la aplicación sin miedo a hurtos no deseados de las contraseñas.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X