Frage ist Wie konvertiere ich ByteArray in GUID.Konvertieren von ByteArray in UUID Java
Zuvor konvertierte ich meine GUID in Byte-Array, und nach einer Transaktion brauche ich meine GUID zurück aus Byte-Array. Wie mache ich das. Obwohl irrelevant, aber Umwandlung von Guid zu Byte [] ist wie unten
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();
}
aber wie kann ich es zurück konvertieren ??
habe ich versucht, diese Methode aber die mich nicht denselben Wert zurück
public static String getGuidFromByteArray(byte[] bytes)
{
UUID uuid = UUID.nameUUIDFromBytes(bytes);
return uuid.toString();
}
Jede Hilfe geschätzt wird.
+1 für Erklärung: _Special_ für Hashing und einige _black magic_ :) –
Um genauer zu sein über die "schwarze Magie" (die nicht wirklich aufklärt, was wirklich passiert), werfen Sie einen Blick auf http: // docs. oracle.com/javase/7/docs/api/java/util/UUID.html. Namentlich kann 'public UUID (long mostSigBits, long least letterSigBits)' jede Art von UUID, die Sie wollen, konstruieren. Es kann wahrscheinlich sogar ungültige UUIDs mit anderen Typen als 1, 2, 3 oder 4 machen - aber das habe ich nicht verifiziert. 'nameUUIDFromBytes' erstellt nur eine UUID vom Typ 3. –