PHP 8.4.2 Released!

uniqid

(PHP 4, PHP 5, PHP 7, PHP 8)

uniqidGenerar un ID único

Descripción

uniqid(string $prefix = "", bool $more_entropy = false): string

Obtiene un identificador único prefijado basado en la hora actual en microsegundos.

Advertencia

Esta función no crea valores de tipo string aleatorios ni impredecibles. Esta función no debe usarse con propósitos de seguridad. Use una función o generador aleatorios criptográficamente seguros y funciones hash criptográficamente seguras para crear ID de seguridad impredecibles.

Parámetros

prefix

Puede ser útil, por ejemplo, si se generan identificadores simultáneamente en varios hosts que podrían, por casualidad, generar el identificador en el mismo microsegundo.

Con un prefix vacío, el string devuelto tendrá una longitud de 13 caracteres. Si more_entropy es true, tendrá 23 caracteres.

more_entropy

Si está establecido a true, uniqid() añadirá entropía adicional (usando el generador congruente lineal combinado) al final del valor retornado, lo que incrementará la posibilidad de que el resultado sea único.

Valores devueltos

Devuelve el identificador único, como string.

Ejemplos

Ejemplo #1 Ejemplo de uniqid()

<?php
/* Un id único, como: 4b3403665fea6 */
printf("uniqid(): %s\r\n", uniqid());

/* También podemos prefijar el id único, esto es lo mismo que
* hacer:
*
* $uniqid = $prefijo . uniqid();
* $uniqid = uniqid($prefijo);
*/
printf("uniqid('php_'): %s\r\n", uniqid('php_'));

/* También podemos activar el parámetro more_entropy, que es
* necesario en algunos sistemas, como Cygwin. Esto hace que uniqid()
* produzca un valor como: 4b340550242239.64159797
*/
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>

Notas

Precaución

Esta función no genera tokens criptográficamente seguros, de hecho, el valor devuelto, sin pasar ningún parámetro adicional, es ligeramente diferente del de microtime(). Si fuera necesario generar tokens criptográficamente seguros utilice openssl_random_pseudo_bytes().

Nota:

Bajo Cygwin, more_entropy debe ser establecido a true para que esta función funcione.

add a note

User Contributed Notes 1 note

up
2
ken at smallboxsoftware
17 years ago
Just to note this function is fairly slow, and can bring your script to a crawl if it is in a loop. Strangely if you run it as uniqid('', true) it runs much more quickly
To Top