该方法nameUUIDFromBytes()
将名称转换为UUID。在内部,它使用哈希和一些黑魔法将任何名称(即字符串)转换为有效的UUID。
您必须改用new UUID(long, long);
构造函数:
public static String getGuidFromByteArray(byte[] bytes) {
ByteBuffer bb = ByteBuffer.wrap(bytes);
long high = bb.getLong();
long low = bb.getLong();
UUID uuid = new UUID(high, low);
return uuid.toString();
}
但是由于不需要UUID对象,因此可以执行十六进制转储:
public static String getGuidFromByteArray(byte[] bytes) {
StringBuilder buffer = new StringBuilder();
for(int i=0; i<bytes.length; i++) {
buffer.append(String.format("%02x", bytes[i]));
}
return buffer.toString();
}