3 puntos por GN⁺ 2024-08-27 | 1 comentarios | Compartir por WhatsApp
  • Diferentes versiones de UUID

    • UUID Version 1 (v1): se genera con marca de tiempo, contador monótono y dirección MAC
    • UUID Version 2 (v2): reservada para IDs de seguridad. No se conocen muchos detalles
    • UUID Version 3 (v3): se genera con el hash MD5 de los datos proporcionados. Se proponen DNS y URL como datos candidatos
    • UUID Version 4 (v4): se genera con datos completamente aleatorios. Es el UUID en el que piensa la mayoría de la gente
    • UUID Version 5 (v5): se genera con el hash SHA1 de los datos proporcionados. Al igual que v3, se proponen DNS y URL como datos candidatos
    • UUID Version 6 (v6): se genera con marca de tiempo, contador monótono y dirección MAC. Usa los mismos datos que v1, pero con el orden cambiado para que se pueda ordenar por hora de creación
    • UUID Version 7 (v7): se genera con marca de tiempo y datos aleatorios
    • UUID Version 8 (v8): es completamente personalizable por el usuario (excepto los campos obligatorios de versión/variante)
  • Cuándo usarlas

    • v4: úsala cuando necesites un ID aleatorio. Es una buena opción por defecto
    • v7: úsala cuando necesites ordenamiento. Por ejemplo, es adecuada para usarla como clave de base de datos
    • v5 o v8: úsalas cuando quieras incluir datos únicos en el UUID. Lo sabrás si lo necesitas
  • Explicación sobre las otras versiones

    • v7 es una versión mejorada de v1 y v6, por lo que conviene usar v7 siempre que sea posible. Por eso normalmente no se usan v1 ni v6
    • v2 está reservada para usos relacionados con seguridad. Si la estás usando, probablemente no puedas conocer los detalles
    • v3 fue reemplazada por v5. v5 usa un hash más fuerte

Resumen de GN⁺

  • UUID tiene varias versiones, y cada una está diseñada para usos específicos
  • v4 y v7 son las más usadas en general, mientras que v5 y v8 se usan cuando hay requisitos de datos específicos
  • La elección de la versión de UUID depende del propósito de uso: si necesitas ordenamiento, conviene usar v7; si necesitas un ID aleatorio, conviene usar v4
  • Entender las distintas versiones de UUID ayuda a elegir la más adecuada para tu proyecto

1 comentarios

 
GN⁺ 2024-08-27
Opiniones de Hacker News
  • UUID Version 2 (v2) está reservado para IDs de seguridad, y no se conocen bien los detalles

    • Porque el documento RFC fue redactado de forma poco clara
    • Se puede obtener más información consultando la documentación de Open Group
    • También existe el UUID de "versión 0", y esto ayudó más adelante a que otras versiones fueran compatibles
    • Los resultados de la investigación se pueden consultar en GitHub
  • Los detalles de UUID v2 se pueden encontrar fácilmente en el documento RFC 9562

    • Está definido como parte de DCE, y si haces clic en los enlaces relacionados puedes revisar los detalles
    • Es importante hacer clic en los enlaces
  • La marca de tiempo de UUID v7 es útil en Databend para encontrar rápidamente archivos de metadatos

    • Mejora mucho la velocidad de trabajo en AWS S3
    • El PR relacionado se puede consultar en GitHub
  • Ojalá existiera un estándar para UUID cortos

    • Ej.: 73WakrfVbNJBaAmhQtEeDv o bK7nP9xM
    • Se necesitan IDs cortos y fáciles de recordar
  • Es difícil entender el propósito de UUID2

    • Solo me encontré con UUID2 al solicitar la eliminación de datos personales en Xandr
    • Incluso leyendo la página de Wikipedia, es difícil entender por qué se necesitan varios tipos de UUID
    • Me pregunto si la mezcla con el código MAC es lo que aumenta la aleatoriedad de UUID2, o si hay otra razón
    • Si se usan identificadores muy largos por privacidad, se pueden usar UUID que no se dupliquen
  • UUID v4 es simplemente un generador de bytes aleatorios

    • Es más eficiente generar bytes aleatorios omitiendo guiones, información de versión, etc.
  • Es mejor no usar versiones basadas en MAC

    • En teoría, esto aplica a todas las versiones excepto v4 y v7
    • En especial, v1 es la peor, y el MD5 de v3 también es muy débil
  • Un UUID que use datos SHA256 y un contador podría ser útil

    • Puede usarse como un identificador que protege la privacidad de forma similar a PBKDF2
  • Es recomendable usar v7

    • Puede que los expertos en seguridad se opongan
  • Fue una lectura interesante

    • Cada día se puede aprender algo nuevo