将UUID转换回String输入 - nameUUIDFromBytes

时间:2015-09-16 22:58:54

标签: java

我正在使用函数UUID.nameUUIDFromBytes(byte[])将字符串转换为UUID。一旦获得UUID,是否可以转换回原始字符串?

3 个答案:

答案 0 :(得分:11)

这里是UUID的类描述

  

UUID是128位通用唯一标识符(UUID)的不可变表示。

     

UUID有多种不同的布局,但这个类基于RFC 4122的变体2,即Leach-Salz变体。此类可用于建模替代变体,但在这些情况下,大多数方法都不受支持;有关详细信息,请参阅每种方法。

因此,当您致电nameUUIDFromBytes (byte[] name)时,它将返回an UUID instance,这又是128位通用唯一标识符的不可变表示。

这意味着字节现在被散列为唯一标识符,并且不会在原始字节中可逆。

哈希字节的目的是什么?为什么要反转它?如果您在问题中指明,我将编辑此帖子以提供进一步的帮助。但现在这就是答案。

答案 1 :(得分:2)

基于名称的UUID使用散列函数将输入字符串映射到固定数量的位。散列函数是有损的,通常不可逆。

答案 2 :(得分:-5)

想象一下你有这个:

 UUID uuid = UUID.nameUUIDFromBytes(byte[]);

要转换为String它很简单,只需使用toString()方法:

String original = uuid.toString();