CRC32相比MD5重复率较高,
不过某些场景下我们仍然可以使用CRC32然后转长整形的方式将32位的UUID字符串压缩成更短的整形唯一标识。
比如:
我项目中遇到需要将一个主键为UUID的表合并到主键为数字类型 的表,两个表主键不统一,需要把UUID转为重复率较低的数字类型,就可以借助该方法。
对此可能还会产生重复,不过已在我接受范围内,可以手工调整个别重复数字,这大大帮助我减少了工作量。
1 /** 2 * 3 * @Title: getCRC32Value 4 * @author:liuyx 5 * @date:2015年11月6日下午5:26:12 6 * @Description: 获取字符串对应的重复概率较小的整形 7 * @param str 传入字符串 8 * @return 9 */ 10 public static String getCRC32Value(String str) { 11 12 CRC32 crc32 = new CRC32(); 13 crc32.update(str.getBytes()); 14 System.out.println(crc32.getValue()); 15 24 return Long.toString(crc32.getValue()); 25 }