Generar IDs únicos con uniqid (PHP)

Es muy común que necesitemos generar id’s únicos, y una de las técnicas mas comunes es md5(time()), pero PHP cuenta con uniqid(), de manera nativa, veamos unos ejemplos:

 

// genera una cadena única
echo uniqid();
/* devuelve
4bd67c947233e
*/

 

Puedes enviar como primer parámetro en la función un prefijo y puede poner a true el segundo valor para aumentar la entropía, (usando el generador de congruencia lineal combinado) al final del valor de retorno, lo que aumenta la probabilidad de que el resultado será único. Por defecto devuelve una cadena de 13 caracteres, si se activa la entropía devuelve una cadena de 23 caracteres.

// con prefijo
echo uniqid('id_');
/* devuelve
id_4bd67d6cd8b8f
*/

// con más entropía
echo uniqid('',true);
/* devuelve
4bd67d6cd8b926.12135106
*/

// ambos
echo uniqid('id_',true);
/* devuelve
id_4bd67da367b650.43684647
*/

 

La Entropía también se puede considerar como la cantidad de información promedio que contienen los símbolos usados. Los símbolos con menor probabilidad son los que aportan mayor información; por ejemplo, si se considera como sistema de símbolos a las palabras en un texto, palabras frecuentes como “que”, “el”, “a” aportan poca información. Mientras que palabras menos frecuentes como “corren”, “niño”, “perro” aportan más información. Si de un texto dado borramos un “que”, seguramente no afectará a la comprensión y se sobreentenderá, no siendo así si borramos la palabra “niño” del mismo texto original. Cuando todos los símbolos son igualmente probables (distribución de probabilidad plana), todos aportan información relevante y la entropía es máxima.-

Leave a Reply

Your email address will not be published. Required fields are marked *