Il JDK Sun/Oracle espone una funzione per creare un UUID di tipo 3 (basato sul nome) nel pacchetto java.util: java.util.UUID.nameUUIDFromBytes (nome byte []).Quale spazio dei nomi utilizza il JDK per generare un UUID con nameUUIDFromBytes?
I devono essere in grado di generare un UUID tipo 3 in Java utilizzando nameUUIDFromBytes e arrivare allo stesso UUID durante la creazione di un UUID tipo 3 in un'altra lingua, supponendo che forniscono lo stesso byte come sorgente.
In base ai javadocs, questa funzione crea un UUID di tipo 3 conforme a RFC 4122. Tuttavia, in base alla specifica RFC 4122, è necessario creare un UUID di tipo 3 all'interno di uno spazio dei nomi. La maggior parte delle altre lingue consente di specificare lo spazio dei nomi durante la creazione di un UUID di tipo 3 (ad esempio lo UUIDTools gem in Ruby).
Quindi la mia domanda è: quale UUID dello spazio dei nomi viene utilizzato da JDK quando invoco nameUUIDFromBytes?
Il JDK utilizza internamente MD5 per la crittografia, anche se è consentito SHA-1 troppo, e anche preferito. Quindi da solo su quella scelta gli UUID potrebbero essere diversi. –