Java 将UUID转换回字符串输入-nameuidFromBytes

Java 将UUID转换回字符串输入-nameuidFromBytes,java,Java,我正在使用函数UUID.nameuidFromBytes(byte[])将字符串转换为UUID。一旦获得UUID,是否可以将其转换回原始字符串?想象一下: UUID uuid = UUID.nameUUIDFromBytes(byte[]); 要转换为字符串非常简单,只需使用toString()方法: String original = uuid.toString(); 基于名称的UUID使用哈希函数将输入字符串映射到固定位数。散列函数是有损函数,通常是不可逆的 以下是UUID的类描述 U

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

想象一下:

 UUID uuid = UUID.nameUUIDFromBytes(byte[]);
要转换为
字符串
非常简单,只需使用
toString()
方法:

String original = uuid.toString();

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

以下是UUID的类描述

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

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

因此,当您调用
nameuidfrombytes(byte[]name)
时,它将返回
一个UUID实例
,它同样是128位通用唯一标识符的不可变表示形式

这意味着字节现在被散列成一个唯一的标识符,并且不可反转为原始字节


散列字节的目的是什么?为什么要反转它?如果你在你的问题中指明了这一点,我将编辑这篇文章以提供进一步的帮助。但现在这就是答案。

这并没有给出名称。转换前字符串=000059dba6073a0000000b40411988 UUID=bfab57e7-d89c-300a-9934-64060b959736 UUID.toString=bfab57e7-d89c-300a-9934-64060b959736这不起作用。实际上,uuid.toString()将返回一个不可变的字符串。我很确定不需要声明“为什么”他/她想要反转转换。问题特别是“如何”做……就是这样。