¿Hay alguna diferencia entre los UUID creados al llamar a UuidCreate y CoCreateGuid desde la API de Win32?
La documentación dice que CoCreateGuid simplemente llama a UuidCreate, pero los comentarios en la documentación son bastante diferentes.
Solo CoCreateGuid menciona específicamente el caso de uso:
número absolutamente único que utilizará como identificador persistente en un entorno distribuido.
Mientras que Uuidcreate se centra en cambio en explicar la no trazabilidad:
[...] genera un UUID que no se puede rastrear hasta la dirección de ethernet de la computadora en la que se generó. Tampoco se puede asociar con otros UUID creados en la misma computadora.
Supongo que la diferencia podría ser histórica, el documento menciona que UuidCreate se cambió de los UUID de la versión 1 basados en MAC a la versión 4 aleatoria no rastreable en algún momento del pasado por razones de seguridad. UuidCreateSequential se introdujo si se necesitan UUID basados en MAC.
Si es así, los valores de retorno de UuidCreate (RPC_S_OK, RPC_S_UUID_LOCAL_ONLY, RPC_S_UUID_NO_ADDRESS) actualmente solo se incluyen para la compatibilidad heredada y, básicamente, ¿están obsoletos?
¿Alguien sabe más sobre esto? Por lo que puedo decir, no hay diferencia.
Solución del problema
CoCreateGuid llama a UuidCreate.
UuidCreate
solía ser la única función, y era un uuid de tipo 1 (mac + datetime).
Más tarde, después de que arrestaron a un niño después de que el software que escribió fue rastreado hasta su computadora portátil debido a su dirección MAC, Windows Vista cambió UuidCreate
a un uuid tipo 4 (aleatorio).
Y Microsoft agregó UuidCreateSequential
como el uuid de tipo 1 heredado.
Por razones de seguridad, UuidCreate se modificó para que ya no use la dirección MAC de una máquina para generar UUID. UuidCreateSequential se introdujo para permitir la creación de UUID utilizando la dirección MAC de la tarjeta Ethernet de una máquina.
No hay comentarios:
Publicar un comentario