UUID到CRC32的转换和可能的冲突

时间:2017-02-14 08:28:18

标签: java uuid crc32

我要将UUID转换为CRC32,如下所示:

public static long crc32(String input) {
    byte[] bytes = input.getBytes();
    Checksum checksum = new CRC32();
    checksum.update(bytes, 0, bytes.length);

    return checksum.getValue();
}

String uuid1 = UUID.randomUUID().toString;
String uuid2 = UUID.randomUUID().toString;

long crc32_1 = crc32(uuid1);
long crc32_2 = crc32(uuid2);

如果crc32_1crc32_2有100%不同,uuid1uuid2是否相等?

1 个答案:

答案 0 :(得分:2)

是。有两个不同的UUID的CRC将是相等的。只有77,164个UUID,其中两个将有50%的机会拥有相同的CRC-32。