Câu hỏi là Làm cách nào để chuyển đổi ByteArray thành GUID.Chuyển đổi ByteArray sang UUID java
Trước đây tôi đã chuyển đổi guid của mình thành mảng byte và sau một số giao dịch, tôi cần guid của tôi trở lại từ mảng byte. Làm thế nào để làm điều đó. Mặc dù không liên quan nhưng chuyển đổi từ Guid để byte [] như sau
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();
}
nhưng làm thế nào để chuyển đổi nó trở lại ??
Tôi đã thử phương pháp này, nhưng nó không trở lại cho tôi cùng một giá trị
public static String getGuidFromByteArray(byte[] bytes)
{
UUID uuid = UUID.nameUUIDFromBytes(bytes);
return uuid.toString();
}
Bất kỳ trợ giúp sẽ được đánh giá cao.
+1 để giải thích: _Specially_ cho Hashing và một số ma thuật _black_ :) –
Để cụ thể hơn về 'ma thuật đen' (điều này không thực sự rõ ràng về những gì đang thực sự xảy ra), hãy xem http: // docs. oracle.com/javase/7/docs/api/java/util/UUID.html. Cụ thể, 'UUID công khai (dài nhấtSigBits, dài nhấtSigBits)' có thể xây dựng bất kỳ loại UUID nào bạn muốn. Nó có thể thậm chí có thể làm cho UUID không hợp lệ với các loại khác hơn 1, 2, 3, hoặc 4 - nhưng tôi đã không xác minh điều này. 'nameUUIDFromBytes' sẽ chỉ xây dựng UUID loại 3. –