Android中的UUID.randomUUID冲突

时间:2015-03-27 19:06:14

标签: java android random dalvik udid

我知道UUID.randomUUID主要是好的:how good is java's UUID.randomUUID?

有没有人在使用UUID.randomUUID的Android上遇到问题。由于Android使用Dalvik VM。

我无法重现碰撞。但是,以下代码是可疑的(基于我的Production的报告),并且可能在两个不同进程(两个具有相同代码和不同包的应用程序,例如免费应用程序vs专业应用程序)上运行时导致冲突?

private static final String PREFIX = Long.toString(UUID.randomUUID().getLeastSignificantBits());

任何想法/经验都会有所帮助!

1 个答案:

答案 0 :(得分:1)

我可以看到,http://docs.oracle.com/javase/7/docs/api/java/util/UUID.html最低有效数字包含三个字段:

 0xC000000000000000 variant
 0x3FFF000000000000 clock_seq
 0x0000FFFFFFFFFFFF node

如果不采用所有UUID,则会增加碰撞的几率。如何完成所有这些:private static final String PREFIX = UUID.randomUUID().toString();

通过这种方式,您将减少碰撞的可能性。