Il problema
Nel nostro sistema gli utenti sono identificati da una chiave composita. Vorremmo ideare uno schema per convertire in modo deterministico questa chiave composita in un UUID.
Soluzioni?
Il primo suggerimento ovvio sarebbe UUIDv5, tuttavia:
- È basato su SHA-1, che capisco di non essere più raccomandato come algoritmo di hashing.
- Sembra che una parte dell'input sia un UUID, ma nessuna parte della chiave composta è.
La prossima scelta ovvia sarebbe utilizzare un hash SHA-256 e "comprimerlo" in 128 bit. Questo solleva 2 domande:
- Come si fa? (prendi il primo o il secondo tempo? XOR prima metà con la seconda metà? un altro, modo migliore?)
- È una cattiva pratica usare tutti i 128 bit di un UUID invece di usare i bit riservati per la variante e la versione?