这是这个问题的延伸
如果正在编码的字符串保证是唯一的,例如 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,发生冲突的可能性有多大?
如果数据是唯一的,则在base64编码时也是唯一的。
Base64 编码是编码数据的无损表示。它们是相同的数据,只是使用不同的符号来表示,以相当高密度、可打印的方式对其进行编码。