Saltar al contenido

Función PHP para generar UUID v4

Mantén la atención porque en este tutorial vas a hallar la solución que buscas.Este post ha sido evaluado por nuestros expertos para asegurar la calidad y exactitud de nuestro post.

Solución:

En lugar de dividirlo en campos individuales, es más fácil generar un bloque de datos aleatorio y cambiar las posiciones de los bytes individuales. También debería utilizar un generador de números aleatorios mejor que mt_rand ().

De acuerdo con RFC 4122 – Sección 4.4, debe cambiar estos campos:

  1. time_hi_and_version (bits 4-7 del séptimo octeto),
  2. clock_seq_hi_and_reserved (bit 6 y 7 del noveno octeto)

Todos los otros 122 bits deben ser suficientemente aleatorios.

El siguiente enfoque genera 128 bits de datos aleatorios utilizando openssl_random_pseudo_bytes(), hace las permutaciones en los octetos y luego usa bin2hex() y vsprintf() para hacer el formateo final.

function guidv4($data)
 0x80); // set bits 6-7 to 10

    return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));


echo guidv4(openssl_random_pseudo_bytes(16));

Con PHP 7, generar secuencias de bytes aleatorias es aún más simple usando random_bytes():

function guidv4($data = null)

    $data = $data ?? random_bytes(16);
    // ...

Tomado de este comentario sobre el manual de PHP, puede usar esto:

function gen_uuid()  0x8000,

        // 48 bits for "node"
        mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
    );

Cualquiera que use compositor dependencias, es posible que desee considerar esta biblioteca: https://github.com/ramsey/uuid

No hay nada más fácil que esto:

Uuid::uuid4();

Eres capaz de estimular nuestra ocupación poniendo un comentario y dejando una puntuación te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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