Base64编码的UUID是否唯一?

3
这是对this question的扩展。
如果被编码的字符串保证是唯一的,例如UUID,这是否意味着base64编码后的字符串也保证是唯一的?
如果我们考虑以下Java示例:
    UUID uuid = UUID.randomUUID();
    ByteBuffer byteBuffer = ByteBuffer.wrap(new byte[16])
            .putLong(uuid.getMostSignificantBits())
            .putLong(uuid.getLeastSignificantBits());

    String encodedUUID = Base64.getUrlEncoder()
                  .withoutPadding()
                  .encodeToString(byteBuffer.array());

由于uuid是唯一的,这是否意味着encodedUUID也是唯一的?如果是的话,在大量encoded UUID的情况下发生冲突的可能性是多少?

我建议你编辑一下你的问题。如果你的问题是关于Base64字符串的,它已经得到了回答,你的问题应该被关闭为重复。如果你的问题是关于唯一性和冲突的,那就没问题,请删除与Base64字符串相关的部分。 - undefined
2个回答

6

如果数据是唯一的,那么进行 Base64 编码后它仍然是唯一的。

Base64 编码是编码数据的无损表示。它是相同的数据,只是使用不同的符号进行编码,并以一种相当高密度、可打印的方式表示。


3

Base64是双向的,这意味着如果你对一个唯一UUID进行编码,你将得到一个可以解码为确切一个值的base64字符串,例如这种情况下的唯一值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接