当前位置: 首页 > 面试题库 >

在Java中使用UUID的最高有效位的冲突可能性

东方方伟
2023-03-14
问题内容

如果我正在使用Long uuid = UUID.randomUUID().getMostSignificantBits()发生冲突可的可能性。它会切掉最低有效位,所以有可能发生冲突可,对吗?


问题答案:

根据文档,静态方法UUID.randomUUID()生成类型4 UUID。

这意味着六位用于某种类型信息,其余的122位是随机分配的。

分布了六个非随机位,其中UUID的最高有效一半分配了四个,而最低有效一半分配了两个。因此,你UUID的最重要的一半包含60位随机性,这意味着你平均需要生成2 ^ 30个UUID才能发生冲突(相比之下,完整UUID则为2 ^ 61)。

所以我要说你很安全。但是请注意,正如Carl Seleborg提到的,对于其他类型的UUID绝对不是这样。

顺便说一句,通过使用UUID的最低有效部分(或仅使用SecureRandom生成随机长整型),你的状况会稍好一些。



 类似资料:
  • 问题内容: 我想找到设置为的最高有效位。我已经从尝试一切可能的方式来进行或运算所有的位从到和它不工作。 就像我想拥有一样。 问题答案: 如果您坚持直接使用按位运算符,则可以尝试如下操作: 我们将掩码初始化为,因为它表示1后跟31 0。我们使用该值来测试索引31(第32个点)是否为1。当将此值与一起使用时,除非在中设置了相应的位,否则将得到0 。如果是这种情况,我们返回。如果不是,则将掩码向右移动1

  • 问题内容: 我不确定默认的python安装是否是我一直在安装模块的安装,是否可能是导致Unicode字节大小兼容性错误的原因。简而言之,我已经使用Python 2.7.3安装了Numpy 1.7,并且当我尝试安装另一个使用Python和Numpy作为依赖项的程序时,出现了以下错误: 所以我想我有一个有冲突的unicode字节大小(2字节vs. 4字节)。我去检查一下我是否有冲突的Python版本,

  • 问题内容: 如果我们需要实现两个接口,这两个接口都包含一个具有相同名称和参数但返回类型不同的方法,我们该怎么办?例如: 有没有简单的方法可以解决此问题? 问题答案: 最简单的解决方案是始终返回A,因为它可以存储所有可能的值。 如果您不是一个选择,则需要使用继承的替代方法。

  • 我添加到我的实体中 @version@temporal(temporaltype.timestamp) @column(name=“version”) 专用日期版本; 错误: 原因:org.hibernate.exception.ConstraintViolationException:无法执行语句(...) org.hibernate.exception.internal.standardsql

  • 你能给我一些关于表的主键操作在Oracle中具有时间有效性的一些看法吗? 我创建了一个具有以下架构的表 是因为Oracle实际上并不关心主键上的有效期列吗? 提前道谢!

  • 问题内容: Java 使用方法在中插入K / V对。可以说我使用过method,现在有一个条目,其值为10和17。 如果我在其中插入10,20,由于键10相同而发生冲突,它会简单地用该条目替换之前的条目。 如果钥匙碰撞,则用新的K / V对替换旧的K / V对。 所以我的问题是何时使用Chaining冲突解决技术? 为什么它没有形成键值为10且值为17,20的a? 问题答案: 当您插入线对然后时,