Generador de UUID

Añadir al sitio web Metainformación

Otras herramientas

Generar UUID/GUID

Generar UUID/GUID

El identificador único universal (UUID), también conocido como identificador único global (GUID), se ha utilizado ampliamente en los sistemas informáticos.

Es un código de 128 bits que genera el sistema en función de variables y constantes: hora actual, dirección MAC, hash SHA-1, espacio de nombres MD5. El resultado final de generar un UUID, que se muestra como un código alfanumérico de 32 caracteres separados por guiones, puede parecer arbitrario, pero en realidad es el resultado de cálculos complejos. Así, una computadora no “inventa” un código, sino que lo forma a partir de cantidades técnicas específicas que son relevantes en un momento dado.

La probabilidad de que se genere el mismo UUID en dos equipos diferentes en momentos diferentes tiende a cero, lo que hace posible utilizar los códigos resultantes para la identificación de datos puntuales/locales sin referencia al centro de coordinación. Hoy en día, UUID/GUID es omnipresente tanto en redes en línea como fuera de línea, y funciona de manera efectiva no solo en el espacio global de Internet, sino también en sistemas informáticos independientes.

Historial de UUID

Los códigos UUID de 128 bits fueron utilizados por primera vez por la empresa estadounidense Apollo Computer en la década de 1980. Se basaron en los códigos de 64 bits más simples utilizados en Domain/OS y ​​encontraron un uso generalizado en el entorno informático de Open Software Foundation.

Con la llegada de las primeras plataformas de Windows, el identificador único global se generalizó y estandarizó. Microsoft adoptó el diseño DCE de Apollo Computer y registró el espacio de nombres URN en RFC 4122. En 2005, el IETF propuso este último como un nuevo estándar y el UUID se estandarizó dentro de la ITU.

A principios de 2002, se identificaron problemas de rendimiento del sistema al usar UUID como claves principales en bases de datos locales. Estos se corrigieron en la versión 4 agregando un sufijo no aleatorio basado en la hora del sistema de la computadora. El llamado enfoque COMB (Identificador de tiempo GUID combinado) aumentó los riesgos de duplicación de código, pero al mismo tiempo mejoró significativamente el rendimiento cuando se trabaja con Microsoft SQL Server.

Con el desarrollo de las tecnologías informáticas, el identificador único universal ha dejado de ser una herramienta técnica altamente especializada, y hoy todo el mundo puede utilizarlo. La probabilidad de repetición de los códigos generados no es igual a cero, pero tiende a ello, y cualquier información digital puede ser identificada por ellos, después de lo cual pueden combinarse en conjuntos de datos únicos con riesgos mínimos de repetición.

Beneficios de UUID

Los generadores de códigos únicos globales no requieren reconciliación/sincronización de datos centralizados y están disponibles gratuitamente para todos los usuarios. Las principales ventajas de UUID incluyen:

  • Riesgos mínimos de "colisión" (repetición) de códigos. A pesar de su uso masivo, la probabilidad de repetición tiende a cero.
  • Capacidad de unir diferentes matrices de datos utilizando UUID como claves primarias (únicas).
  • Distribución simplificada de datos entre múltiples servidores dispersos.
  • Capacidad de generar códigos sin conexión.

Los códigos de identificación únicos, escritos en el formato xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, permiten que sistemas dispersos reconozcan información sin coordinación desde un único centro de datos: con una probabilidad de errores/repeticiones casi nula. Esta característica, junto con la facilidad de uso y los pequeños requisitos para el rendimiento de la computadora, hace que el UUID sea demandado e indispensable en una amplia variedad de industrias de TI y sistemas informáticos autónomos.

Identificador único universal

Identificador único universal

El UUID puede generar códigos usando diferentes algoritmos y variables/valores constantes.

Hay 5 versiones del identificador en total, que utilizan la fecha/hora del sistema y las direcciones MAC, los protocolos de seguridad DCE, el hash MD5, el hash SHA-1 y el espacio de nombres cuando se genera.

En todos los casos, el resultado final se muestra en el formato xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx (un número en notación hexadecimal, que consiste en letras y números latinos en minúsculas, y dividido por guiones en cinco bloques: 8-4 -4-4- 12), M significa versión, N significa variante UUID.

Así, el sistema utiliza 36 caracteres a la vez (26 letras y 10 números), por lo que la probabilidad de repetir códigos de 32 dígitos tiende a cero, a pesar de que son generados diariamente por millones de usuarios en todo el mundo.

Versiones de UUID

Versión 1

La primera versión del identificador único, al generar el código, se basa en la dirección MAC de la computadora y la hora de su sistema, que cambia su valor numérico 1 vez por segundo. El proceso de generación consta de cinco etapas:

  • Los 32 bits inferiores de información se toman de la etiqueta UTC. Se convierten a 8 caracteres hexadecimales y ocupan 4 bytes.
  • Se toman un promedio de 16 bits de información de la misma etiqueta UTC y se convierten en 4 caracteres hexadecimales que ocupan 2 bytes.
  • Los 12 bits superiores de información de la etiqueta UTC se toman y se convierten a 4 caracteres hexadecimales más.
  • Otros 1-3 bits caen en la secuencia del reloj y reducen los riesgos de colisiones al introducir un grado de aleatoriedad/incertidumbre. La hora del sistema se ralentiza o retrocede condicionalmente, de modo que dos o más identificadores que trabajan en la misma computadora al mismo tiempo no se "cruzan".
  • Los 6 bytes restantes son un valor constante generado en función de la dirección MAC del dispositivo. Consta de 12 caracteres hexadecimales y tiene un tamaño de 48 bits.

Debido a que el algoritmo de la primera versión del UUID está inextricablemente vinculado a la hora del sistema, el uso de la secuencia de reloj es obligatorio. De lo contrario, los riesgos de generar los mismos códigos aumentan muchas veces, durante el segundo cuando el tiempo del sistema se "congela" en uno u otro valor.

Versión 2

La segunda versión es mínimamente diferente de la primera y rara vez se usa en la práctica. En lugar de una secuencia de reloj, utiliza un identificador del sistema vinculado a los datos del usuario u otros valores únicos que no se repiten en otras computadoras o se repiten muy raramente. El efecto de la aleatoriedad en la segunda versión se minimiza y se puede utilizar para mejorar la seguridad de un entorno informático distribuido.

Versiones 3 y 5

Tienen mucho en común: utilizan nombres y nombres únicos (del espacio MD5) para crear códigos, es decir, valores no aleatorios. Solo la versión 3 usa un hash estándar, mientras que la versión 5 usa un hash SHA-1. Dichos identificadores dependen menos de variables aleatorias.

Versión 4

La generación de esta versión de UUID es más del 90 % aleatoria. Tiene 6 bits para valores constantes y 122 para valores arbitrarios. La implementación del algoritmo es que primero se generan aleatoriamente 128 bits de información, y 6 de ellos se reemplazan por datos de versión y variante.

El papel del generador de números pseudoaleatorios en la cuarta versión es máximo, y si tiene un algoritmo demasiado simple, los riesgos de repeticiones/colisiones aumentan significativamente. A pesar de esto, la cuarta versión es, con mucho, la más común y la que se usa con más frecuencia en la práctica.

Opciones de UUID

El UUID único se ha refinado varias veces a medida que se ha desarrollado la tecnología informática, y hoy se presenta en varias versiones.

Opción 0

Diseñado para funcionar con las bases de datos de formato de 1988 Apollo Network Computing System 1.5 heredadas. Esta opción es compatible con versiones anteriores y no entra en conflicto con los UUID históricos de NCS.

Opciones 1 y 2

Se utilizan para identificar matrices y bloques de datos modernos, y en forma de texto canónico no difieren entre sí, excepto por el orden en que se escriben los bits variantes. Entonces, la opción 1 usa el orden de bytes big-endian y la opción 2 usa title-endian. El primero es el principal y el segundo está reservado para trabajar con los primeros GUID de Microsoft Windows.

Opción 3

Actualmente no está en uso. Es una versión reservada para uso futuro - cuando se agoten las posibilidades de las opciones anteriores.

La mayoría de los sistemas codifican el identificador en big-endian, pero hay excepciones. Por ejemplo, el cálculo de referencias en las bibliotecas Microsoft COM/OLE utiliza mixed-endian al generar código a partir de los bloques title-endian y big-endian. El primero son los tres primeros componentes del UUID y el segundo son los dos últimos.