Cómo generar una cadena aleatoria en PHP [con ejemplos]

Publicado: 2020-11-24

PHP, en el momento de su lanzamiento, significaba Página de inicio personalizada . Y si bien su viaje evolutivo le dio a la industria una definición alternativa y más aceptable (recursiva) como PHP: preprocesador de hipertexto , la verdad sobre PHP es que todavía se impregna del espíritu de personalización más que cualquier otra cosa.

Hoy en día, PHP es la alternativa preferida, gratuita y de código abierto a todos los demás lenguajes de configuración de servidores líderes, como ASP (Active Server Pages) de Microsoft. Una gran parte de este aspecto de personalización se lleva a cabo mediante la presencia de un intérprete de PHP en el lado del servidor, que puede implementarse como un módulo , un demonio o un ejecutable .

Las interfaces de PHP son útiles en la gestión de datos importantes centrados en el usuario, como UID (identificadores únicos), direcciones de correo electrónico, nombres de usuario, contraseñas, información de contacto confidencial y mucho más.

Muchos, si no todos, de los principales sistemas de administración de contenido dinámico del mundo (incluido el gigante de CMS WordPress), son plataformas basadas en PHP que permiten la fácil creación y mantenimiento de registros de usuarios y registros de contenido, en forma de bases de datos accesibles mediante PHP. .

En este artículo, exploraremos un aspecto particular de PHP que facilita a los administradores completar todos los campos obligatorios necesarios en el acto de crear un nuevo "usuario" con una intervención mínima tanto del lado del administrador como del lado del usuario. . Para hacer esto, los administradores deben aprender a generar cadenas aleatorias de PHP, y eso es lo que cubriremos.

Leer: Ideas y temas de proyectos PHP

Tabla de contenido

¿Qué es una cadena aleatoria de PHP?

Una cadena aleatoria de PHP es una cadena de caracteres única, aleatoria y alfanumérica que se puede usar en una matriz como un nombre de archivo, como una extensión de URL aleatoria, como una contraseña o como un token de autenticación (como los tokens API comunes y API Secrets como se ve en la interfaz de desarrollo de aplicaciones de Facebook).

Los bloggers frecuentes, especialmente aquellos que usan plataformas como Medium para publicar su trabajo, verán este acto de generación de cadenas aleatorias en acción cada vez que publiquen una nueva historia o publicación: la extensión de URL que sigue al dominio base suele ser el resultado de un cadena arbitraria generada por la interfaz de publicación.

Por ejemplo, en la URL https://medium.com/neli/shiring-revealing-the-best-kept-secret-of-ancient-indian-meditation-c37d87e3386b , la última parte de la URL (c37d87e3386b) es una cadena generada . Otras referencias fáciles e importantes de las cadenas aleatorias de PHP incluyen las contraseñas "predeterminadas" que se generan para todas las cuentas de usuario nuevas en WordPress.

Una mayoría cada vez mayor de las plataformas de Internet para consumidores también se están desplazando hacia el uso de cadenas aleatorias de PHP para aprovechar el poder del cifrado al habilitar los inicios de sesión de "enlace mágico". Si alguna vez ha utilizado un servicio basado en la nube que utiliza un inicio de sesión de "enlace mágico", ya está familiarizado con la facilidad, la eficiencia y la capa mejorada de seguridad que se proporciona con la generación y el mapeo de cadenas aleatorias de PHP.

¿Cómo generar una cadena aleatoria de PHP?

La tarea en cuestión es escribir código que genere cadenas aleatorias, alfanuméricas y únicas usando PHP. Hay cuatro maneras diferentes en las que esto se puede lograr:

  1. Mediante el uso de fuerza bruta (indexación aleatoria): este es, con mucho, el método más fácil, pero crudo, para lograr una cadena aleatoria de PHP.
  2. Mediante el uso de funciones de " hashing " (generación algorítmica de cadenas aleatorias de PHP; este es un enfoque un poco más inteligente en comparación con el uso de la fuerza bruta)
  3. Mediante el uso de la función uniqid() incorporada (esto es sencillo y aprovecha una funcionalidad PHP incorporada para generar identificadores únicos para los elementos)
  4. Mediante el uso de random_bytes() seguido de bin2hex() , genera bytes aleatorios criptográficamente seguros y ofrece una funcionalidad increíble para interfaces como loterías en línea, juegos de póquer en línea y otras plataformas que requieren generación de números en tiempo real con verdadera aleatorización integrada en su núcleo.

Lea también: Oportunidades de carrera en PHP

Generando una cadena aleatoria de PHP usando fuerza bruta

El concepto de fuerza bruta de generación de cadenas aleatorias en PHP es el más simple de entender y el más fácil de implementar. En términos generales, el enfoque de fuerza bruta se puede explicar en cuatro sencillos pasos:

  1. Agrupe todos los caracteres posibles y colóquelos en una cadena (este es su depósito de espacio de muestra de todos los caracteres permitidos en su cadena).
  2. Genere un "índice aleatorio" que comience en 0 (cero) y se extienda hasta la longitud de la cadena "-1".
  3. Imprime un carácter en la posición de índice actual.
  4. Si X es la cantidad de caracteres que necesita en su cadena (la longitud deseada de la cadena), repita los pasos 1, 2 y 3 un total de X veces en su ciclo de instrucción total.

Como puede ver en la implementación del código de muestra a continuación, esta es, con mucho, la forma más sencilla de generar una cadena aleatoria en PHP.

Código de muestra:

<?php

$n=10;

función obtenerNombre($n) {

$caracteres = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

$cadena aleatoria = ”;

para ($i = 0; $i < $n; $i++) {

$índice = rand(0, strlen($caracteres) – 1);

$cadenaaleatoria .= $caracteres[$índice];

}

devuelve $cadena aleatoria;

}

echo getNombre($n);

?>

Debe leer: Preguntas y respuestas de la entrevista de PHP

Generar una cadena aleatoria de PHP usando funciones de "hashing"

PHP tiene algunas funciones integradas conocidas como " funciones hash ", como md5 (), sha1 () y hash (). Estas funciones se pueden usar para "hash" una cadena definida por algoritmos específicos como "sha1", "sha256" y "md5". En todas estas funciones, el argumento es una cadena y el resultado es una cadena alfanumérica con hash (como se ve en el código de ejemplo a continuación).

Código de muestra:

<?php

$cadena=rand();

$resultado = md5($cadena);

echo $resultado;

?>

Generación de una cadena aleatoria de PHP usando la función incorporada "uniqid ()"

PHP conserva una apariencia de su valor como herramienta de personalización por excelencia, con funciones especiales incorporadas como uniqid(), que se puede usar para generar una "ID única (UID)" que se deriva de la hora actual, registrada en microsegundos (también conocido como “microtiempo”).

Según la sintaxis predeterminada, la función uniqid() siempre devuelve una cadena alfanumérica única que tiene una longitud de cadena de 13 caracteres. Puede usar el código de muestra a continuación para probar una implementación del método uniqid().

Código de muestra:

<?php

$resultado = uniqid();

echo $resultado;

?>

Generando una cadena aleatoria PHP usando random_bytes() y bin2hex()

Esta, por mucho, es la forma más evolucionada y segura de generar bytes "pseudo-aleatorios" y luego convertirlos a un formato hexadecimal para agregar una capa de cifrado a la aleatorización existente.

El primer paso es llamar a la función random_bytes () incorporada para generar bytes aleatorios criptográficamente seguros. El siguiente paso es llamar a la función bin2hex () que usará estos datos binarios (número de bytes) como argumento y generará un valor hexadecimal correspondiente como salida, que es una cadena Esto se explica mejor en el código de ejemplo a continuación.

Código de muestra:

<?php

$n = 20;

$resultado = bin2hex(random_bytes($n));

echo $resultado;

?>

¿Qué sigue?

upGrad trae programación con PHP y mucho más con el Diploma PG de upGrad en Desarrollo de Software Especialización en Desarrollo Full Stack . Un programa para hacerte emerger como un desarrollador de pila completa y aprender a construir algunas de las increíbles aplicaciones. Es un extenso programa de 12 meses que incluye trabajar en proyectos y tareas en vivo y también entrenar 15 lenguajes y herramientas de programación. Además, cuenta con apoyo profesional de todos los tiempos con entrevistas simuladas y asistencia laboral.

Aterrice en el trabajo de sus sueños

UPGRAD Y DIPLOMA PG DE IIIT-BANGALORE EN FULL STACK
Aprende más