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

Java的UUID.randomUUID有多好?

幸越泽
2023-03-14
问题内容

我知道理论上随机UUID发生冲突的可能性非常非常非常低,但是我想知道实际上Java randomUUID()在没有冲突方面有多好?有没有人可以分享经验?


问题答案:

UUID使用java.security.SecureRandom,应该被认为是“加密强”的。虽然未指定实际的实现,并且在JVM之间可能有所不同(这意味着所做的任何具体语句仅对一个特定的JVM有效),但它确实要求输出必须通过统计随机数生成器测试。

一个实现总是有可能包含破坏所有这些的细微错误(请参阅OpenSSH密钥生成错误),但我认为没有任何具体的理由担心Java UUID的随机性。



 类似资料:
  • 问题内容: 我需要在Java中创建一些唯一文件,并且我计划使用UUID.randomUUID生成其名称。有没有机会撞到这个?我应该做类似波纹管的事情吗?我不应该为此担心吗? 问题答案: 根据维基百科,关于随机UUID中重复的概率: 仅在接下来的100年中每秒生成10亿个UUID之后,仅创建一个副本的可能性就约为50%。或者,换句话说,如果地球上的每个人都拥有6亿个UUID,则重复一次的概率约为50

  • 问题内容: 我想要一个高效的实用程序来生成唯一的字节序列。UUID是一个很好的候选人,但是会生成类似的东西,但是我更喜欢无破折号的字符串。 我正在寻找一种仅从字母数字字符(无破折号或任何其他特殊符号)生成随机字符串的有效方法。 问题答案: 最终基于UUID.java实现编写了自己的东西。请注意,我 并不是在生成UUID ,而是以我能想到的最有效的方式 生成一个 随机的32字节十六进制字符串。 实作

  • 问题内容: 正如前面所讨论的,确认电子邮件应该有一个独特的,(几乎)未猜测的代码- 基本上是一个一次性密码 --in确认链接。 UUID.randomUUID()文档说: 使用加密强度高的伪随机数生成器生成UUID。 这是否意味着在正确实现的JVM中的UUID随机生成器适合用作唯一的(实际上)不可猜测的OTP? 问题答案: 否。 根据UUID规范: 不要以为UUID很难猜测;例如,它们不应用作安全

  • 问题内容: 我有一个包含三个字段(所有字符串类型)的“报告”对象列表- 我有一个排序代码,就像 由于某种原因,我没有排序顺序。一个建议在字段之间放置空格,但是为什么呢? 你认为代码有什么问题吗? 问题答案: 你认为代码有什么问题吗? 是。为什么在比较它们之前将三个字段加在一起? 我可能会做这样的事情:(假设字段按照你希望对其进行排序的顺序)

  • 我有一个带有TimerService的无状态会话Bean。在超时时,它开始使用JMS队列。在处理消息时,它需要访问可能暂时不可用的外部资源。timeout方法在循环中调用,直到: 没有更多的消息要处理:它注册一个新的定时器=现在+10分钟。和结尾。 处理过程中发生错误:它回滚消息并注册一个新的计时器:现在+30分钟。和结尾。 通过这种方式,我可以控制何时重新启动,而且由于TimerService回

  • 我读了一些关于二进制堆/优先级队列的内容,并决定尝试自己实现一个。我不是最有经验的程序员,如果你们能看看我的堆类并告诉我它是否是一个好的实现,我将不胜感激。 我可以在这里改进什么?欢迎任何反馈。