Base64 编码的 UUID 是唯一的吗?
Are Base64 encoded UUIDs unique?
这是对
的扩展
如果被编码的字符串保证是唯一的,比如一个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
也将是唯一的?如果是这样,在大量编码 UUID 的情况下发生冲突的可能性有多大?
如果数据是唯一的,则base64编码后也是唯一的。
Base64 编码是编码数据的无损表示。这是相同的数据,只是使用不同的符号表示,以相当高的密度、可打印的方式对其进行编码。
Base64 是双向的,这意味着如果您对唯一的 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());
由于 uuid
是唯一的,这是否意味着 encodedUUID
也将是唯一的?如果是这样,在大量编码 UUID 的情况下发生冲突的可能性有多大?
如果数据是唯一的,则base64编码后也是唯一的。
Base64 编码是编码数据的无损表示。这是相同的数据,只是使用不同的符号表示,以相当高的密度、可打印的方式对其进行编码。
Base64 是双向的,这意味着如果您对唯一的 UUID 进行编码,您将获得一个 base64 字符串,该字符串可以解码为精确的值,在本例中为唯一值。