Generando strings aleatorias usando PHP

Genere una string alfanumérica única y aleatoria usando PHP.

Ejemplos:

EA070
aBX32gTf

ENFOQUE 1: Fuerza bruta
El primer enfoque es el más simple de entender y, por lo tanto, la fuerza bruta.
Se puede lograr de la siguiente manera:

  • Almacene todas las letras posibles en una string.
  • Genere un índice aleatorio de 0 a longitud de string-1.
  • Imprima la carta en ese índice.
  • Realice este paso n veces (donde n es la longitud de string requerida).

Programa:

<?php
$n=10;
function getName($n) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $randomString = '';
  
    for ($i = 0; $i < $n; $i++) {
        $index = rand(0, strlen($characters) - 1);
        $randomString .= $characters[$index];
    }
  
    return $randomString;
}
  
echo getName($n);
?>

Salida 1:

3HDrSOvRIs

Salida 2:

lipHh

ENFOQUE 2: Uso de funciones hash
PHP tiene algunas funciones como md5(), sha1() y hash(), que se pueden usar para codificar una string en función de ciertos algoritmos como «sha1», «sha256», «md5», etc. Todas estas funciones toman una string como argumento y generan una string hash alfanumérica.

Para obtener más información sobre estas funciones, haga clic aquí.

Una vez que entendemos cómo utilizamos estas funciones, nuestra tarea se vuelve bastante simple.

  • Genere un número aleatorio usando la función rand().
  • Hash usando una de las funciones anteriores.

Programa 1:

<?php
$str=rand();
$result = md5($str);
echo $result;
?>

Salida 1:

2e437510c181dd2ae100fc1661a445d4

Salida 2:

256394010059991a71ea05e5d859d2be

Programa 2:

<?php
$str=rand();
$result = sha1($str);
echo $result;
?>

Salida 1:

6eadd9b2c4389d9b109b3b869f66aab5d8f9420a

Salida 2:

ca2d3c0993ab87e842d0a7a01f319aca6c587a87

Programa 3:

<?php
$str = rand();
$result = hash("sha256", $str);
echo $result;
?>

Salida 1:

2a41cbc8cc11f8c8d0eb54210fe524748b4def1c5b04fcf18c2d5972e24d11c2

Salida 2:

291144c1cbba4de0bf199d37ee265ac95cc2e44e80fd2642b22a6e8ef2f42a39

NOTA: Todas las funciones anteriores son funciones hash, por lo tanto, la longitud de la string generada siempre dependerá del algoritmo utilizado, pero para un algoritmo siempre permanecerá constante. Entonces, si desea generar una string de una longitud fija, puede truncar la string generada o concatenar con otra string, según el requisito.

Enfoque 3: Uso de la función uniqid().
La función uniqid( ) en PHP es una función incorporada que se usa para generar una ID única basada en la hora actual en microsegundos (microtiempo). De forma predeterminada, devuelve una string única de 13 caracteres de largo.

Programa:

<?php 
$result = uniqid();  
echo $result;
?> 

Salida1:

5bdd0b74e9a6c 

Salida2:

5bdd0bbc200c4   

NOTA: Todos los enfoques anteriores se basan en las funciones rand() y uniqid(). Estas funciones no son generadores aleatorios criptográficamente seguros. Por lo tanto, se recomienda que si el grado de aleatoriedad afecta la seguridad de una aplicación, se deben evitar estos métodos.

Enfoque 4: Uso de la función random_bytes(). (Criptográficamente seguro)
La función random_bytes() genera bytes pseudoaleatorios criptográficamente seguros, que luego se pueden convertir a formato hexadecimal usando la función bin2hex() .

Programa:

<?php 
$n = 20;
$result = bin2hex(random_bytes($n));
echo $result;
?> 

Salida1:

235aed08a01468f90fa726bd56319fb893967da8 

Salida2:

508b84494cdf31bec01566d12a924c75d4baed39 

PHP es un lenguaje de secuencias de comandos del lado del servidor diseñado específicamente para el desarrollo web. Puede aprender PHP desde cero siguiendo este tutorial de PHP y ejemplos de PHP .

Publicación traducida automáticamente

Artículo escrito por Vineet Joshi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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