Generar contraseña en PHP

Subodh Poudel 30 enero 2023
  1. Utilice la función rand() para seleccionar un índice de array aleatoria para generar una contraseña aleatoria en PHP
  2. Utilice las funciones openssl_random_pseudo_bytes() y bin2hex() para generar una contraseña aleatoria en PHP
  3. Utilice las funciones substr() y str_shuffle() para generar una contraseña aleatoria a partir de una cadena alfanumérica dada en PHP
Generar contraseña en PHP

Introduciremos un método para generar contraseñas aleatorias en PHP usando la función rand(). Este método utiliza la combinación de números y letras mayúsculas y minúsculas para formar una contraseña. La función rand() devuelve el entero aleatorio, que es el índice del array, para elegir la combinación de contraseña.

También presentaremos otro método para generar contraseñas aleatorias en PHP usando las funciones openssl_random_pseudo_bytes() y bin2hex().

Este artículo demostrará otro método para generar contraseñas aleatorias en PHP usando las funciones substr() y str_shuffle(). Este método también utiliza los valores alfanuméricos proporcionados en el programa para formar una contraseña aleatoria.

Utilice la función rand() para seleccionar un índice de array aleatoria para generar una contraseña aleatoria en PHP

Podemos usar la función rand() para generar una contraseña aleatoria en PHP. La función rand() devuelve un número entero aleatorio del rango de los parámetros proporcionados. La función toma dos valores enteros como parámetros. Podemos definir una cadena de alfabetos y números desde donde podemos combinar la contraseña. El número aleatorio indexa el array para elegir alfabetos o números aleatorios. Podemos repetir la función rand() para crear la contraseña de la longitud deseada.

Por ejemplo, cree una variable $comb y almacene la cadena que comprende todos los alfabetos en minúsculas y mayúsculas y los números del 0 al 10 como abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890. Cree un array $pass con la función array(). Almacene la longitud de la cadena $comb en la variable $combLen. Cree un bucle for e itere el bucle ocho veces. Dentro del bucle, utilice la función rand() con 0 y la variable $combLen como parámetros y almacene el valor en la variable $n. Luego, asigne el $comb[$n] a el array $pass. Fuera del bucle, convierta el array en la cadena usando la función implode().

En el siguiente ejemplo, generamos una contraseña aleatoria a partir de la combinación almacenada en la variable $comb. La función rand() toma un número entero aleatorio desde 0 hasta la longitud de la cadena $comb. El número entero aleatorio se utiliza como índice para recoger el valor alfanumérico aleatorio de la combinación. El bucle se ejecuta ocho veces y elige ocho valores alfanuméricos aleatorios y finalmente forma una contraseña aleatoria. Consulte el Manual de PHP para obtener más información sobre la función rand().

Código de ejemplo:

# php 7.x
<?php
 $comb = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
 $pass = array(); 
 $combLen = strlen($comb) - 1; 
 for ($i = 0; $i < 8; $i++) {
     $n = rand(0, $combLen);
     $pass[] = $comb[$n];
 }
 print(implode($pass)); 
?>

Producción :

aPsQWlzh

Utilice las funciones openssl_random_pseudo_bytes() y bin2hex() para generar una contraseña aleatoria en PHP

Podemos usar la función openssl_random_pseudo_bytes() para generar una cadena de bytes pseudoaleatoria. Podemos especificar un valor entero como parámetro de la función para definir la longitud del número deseado de bytes que se generarán. La función bin2hex() convierte los datos binarios en representaciones hexadecimales. Podemos usar esta función para convertir la cadena de bytes generada aleatoriamente a la representación hexadecimal y formar una contraseña. Este método genera la contraseña aleatoria que comprende los valores alfanuméricos.

Por ejemplo, cree una variable $bytes y asígnele la función openssl_random_pseudo_bytes(). Especifique 4 como parámetro de la función. Cree otra variable, $pass, y escriba la función bin2hex() en ella. Especifique la variable $bytes en la función. Imprima la variable $pass usando la instrucción echo.

En el siguiente ejemplo, el 4 en la función openssl_random_pseudo_bytes() denota el número de bytes que se generarán aleatoriamente. La función bin2hex() convierte los bytes en equivalentes hexadecimales. La contraseña generada aleatoriamente contiene la longitud de 8 porque la conversión hexadecimal de 4 bytes de cadena da como resultado 8. Consulte el Manual de PHP para saber más sobre la función bin2hex().

Código de ejemplo:

#php 7.x
<?php
$bytes = openssl_random_pseudo_bytes(4);
$pass = bin2hex($bytes);
echo $pass;
?>

Producción :

ed203eef

Utilice las funciones substr() y str_shuffle() para generar una contraseña aleatoria a partir de una cadena alfanumérica dada en PHP

Podemos usar el método str_shuffle() para mezclar aleatoriamente la cadena dada. La función baraja la cadena de una combinación de alfabetos en minúsculas y mayúsculas junto con los números del 0 al 9. Por lo tanto, forma una permutación de todos los casos posibles. Podemos usar la función substr() en la cadena mezclada para elegir una parte de sus caracteres. Por lo tanto, podemos generar una contraseña aleatoria.

Por ejemplo, cree una variable $comb y almacene el valor de cadena abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 en ella. Utilice str_shuffle() para mezclar la variable $comb y almacenarla en la variable $shfl. Luego, use la función substr() y la variable $shfl, 0 y 8 como parámetros. Almacene la función en una variable $pwd e imprima la variable.

En el siguiente ejemplo, usamos el mismo conjunto de valores alfanuméricos que el primer método. La contraseña generada aleatoriamente se forma a partir de estos valores alfanuméricos. La función str_shuffle() baraja el valor alfanumérico y crea una permutación aleatoria. Hemos utilizado 0 y 8 en la función substr() para seleccionar los ocho caracteres del primer índice de la permutación barajada. Por lo tanto, genera una contraseña aleatoria de ocho dígitos.

Ejemplo de código:

#php 7.x
<?php
$comb = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$shfl = str_shuffle($comb);
$pwd = substr($shfl,0,8);
echo $pwd;
?>

Producción :

jenZq3lY
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Artículo relacionado - PHP Password