La domanda è Come convertire ByteArray in GUID.Converti ByteArray in UUID java
Precedentemente ho convertito il mio guid in array di byte, e dopo alcune transazioni ho bisogno del mio guid back dall'array di byte. Come lo faccio. Sebbene irrilevante, ma conversione da Guid a byte [] è come sotto
public static byte[] getByteArrayFromGuid(String str)
{
UUID uuid = UUID.fromString(str);
ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
bb.putLong(uuid.getMostSignificantBits());
bb.putLong(uuid.getLeastSignificantBits());
return bb.array();
}
ma come posso riconvertire?
ho provato questo metodo, ma la sua non mi tornare stesso valore
public static String getGuidFromByteArray(byte[] bytes)
{
UUID uuid = UUID.nameUUIDFromBytes(bytes);
return uuid.toString();
}
Qualsiasi aiuto sarà apprezzato.
+1 per Spiegazione: _Specially_ per Hashing e alcuni _black magic_ :) –
Per essere più specifici sulla "magia nera" (che non chiarisce realmente cosa sta realmente accadendo), dai un'occhiata a http: // docs. oracle.com/javase/7/docs/api/java/util/UUID.html. Vale a dire, 'UUID pubblico (long mostSigBits, long leastSigBits)' può costruire qualsiasi tipo di UUID che si desidera. Probabilmente può persino rendere UUID non validi con tipi diversi da 1, 2, 3 o 4 - ma non l'ho verificato. 'nameUUIDFromBytes' costruirà solo un UUID di tipo 3. –