funcion php generar password

El siguiente script es una función en php que genera nuevos password aleatoriamente automaticamente basándose en una serie de patrones tales como la longitud y la fuerza, ésta no es mas que la complejidad de la password que viene dada por si la password contiene consonantes en mayúsculas, vocales en mayúsculas, números y algunos caracteres especiales como el % o el $

A la función de generar password se le pasan 2 parámetros la longitud y la fuerza como he explicado antes. Devuelve el password que se genera automáticamente y de manera aleatorio entre una serie de carácteres.

Los parámetros que yo uso son 9 y 4 respectivamente. Es decir que voy a generar una password de 9 caracteres de longitud y que va a contener consonantes y vocales en mayúsculas y números.

Una vez que se asignan los parámetros que se van a usar el script de generar password simplemente va seleccionando caracteres alternativamente entre el string de vocales y el de consonantes.

Esta aplicación es muy útil y necesaria en el típico formulario de recordar contraseña que hay en casi todos los sites.

function NuevoPassword($longitud,$fuerza)
  {
        $vocales = 'aeiouy';
        $consonantes = 'bcdfghjklmnpqrstvwxz';
        if ($fuerza & 1)
        {
            $consonantes .= 'BDGHJLMNPQRSTVWXZ';
        }
        if ($fuerza & 2)
        {
            $vocales .= "AEUY";
        }
        if ($fuerza & 4)
        {
            $consonantes .= '23456789';
        }
        if ($fuerza & 8 )
        {
            $consonantes .= '@#$%';
        }

        $password = '';
        $alt = time() % 2;
        for ($i = 0; $i < $longitud; $i++)
        {
            if ($alt == 1)
            {
                $password .= $consonantes[(rand() % strlen($consonantes))];
                $alt = 0;
            }
            else
            {
                $password .= $vocales[(rand() % strlen($vocales))];
                $alt = 1;
            }
        }

        return $password;
    }

En la función estoy usando un operador bit a bit del tipo

if ($fuerza & 1) {}

Que quiere decir lo siguiente

$a & $b And (y) Los bits que están activos en ambos $a y $b son activados.

También se podría haber usado con total normalidad del operador de comparación ==

2 opiniones en “funcion php generar password”

  1. Hola, estoy comenzando a escarbar en el mundo del php y encontré este post.
    Cómo debo hacer para insertar este script para que funcione en un sitio creado en wordpress. Me gustaría incluirlo junto a los metaboxes para generar un password para cada post.
    Es posible?
    Muchas gracias!

    1. Hola,

      WordPress trae una funcionalidad integrada para proteger artículos con contraseña, no necesitas hacer nada nuevo.

      De hecho, si quieres agregar algo extra, te recomiendo que busques e integres un plugin http://wordpress.org/extend/plugins/. Cuando tengas más conocimientos de PHP y POO ya te puedes meter a tocar código en WordPress.

      Un saludo!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *