【问题标题】:UUID.randomUUID collision in AndroidAndroid中的UUID.randomUUID冲突
【发布时间】:2015-03-27 19:06:13
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: java android random dalvik udid


    【解决方案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();

    这样,您将减少碰撞的机会。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多