Base64 编码的 UUID 是否唯一?

Ter*_*0r 3 java uuid base64

这是这个问题的延伸

如果正在编码的字符串保证是唯一的,例如 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());
Run Code Online (Sandbox Code Playgroud)

既然uuid是唯一的,这是否意味着encodedUUID也将是唯一的?如果是的话,如果有大量编码的 UUID,发生冲突的可能性有多大?

Ale*_*win 6

如果数据是唯一的,则在base64编码时也是唯一的。

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