当前位置: 首页 > 知识库问答 >
问题:

randomUUID()适合用作一次性密码吗?

边桐
2023-03-14

正如前面所讨论的,确认电子邮件应该在确认链接中有一个唯一的(实际上)不可猜测的代码--基本上是一次性密码。

这是否意味着正确实现的JVM中的UUID随机生成器适合用作唯一的(实际上)不可猜测的OTP?

共有1个答案

阳长恨
2023-03-14

如果您阅读定义UUID的RFC,并从API文档链接到该RFC,您将看到UUID的并非所有部分实际上都是随机的(“Variant”和“Version”不是随机的)。因此,一个类型4的UUID(您打算使用的类型),如果实现正确,应该在128位的总大小中包含122位(对于这个实现来说是安全的)随机信息。

因此,是的,它将与来自“安全”生成器的122位随机数一样有效。但是较短的值可能包含足够多的随机性,对用户来说可能更容易(也许我是唯一一个仍然在终端中阅读电子邮件的老式人,但跨行的确认URL很烦人....)。

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

  • 一次性密码密码是一种Vignere密码,包括以下功能 - 这是一个牢不可破的密码。 密钥与加密的消息长度完全相同。 密钥由随机符号组成。 顾名思义,密钥仅使用一次,并且从不再用于任何其他要加密的消息。 因此,加密消息将容易受到密码分析者的攻击。 用于一次性密码密码的密钥称为pad ,因为它印在纸垫上。 为什么它坚不可摧? 由于以下特点,关键是牢不可破的 - 关键是与给定的消息一样长。 密钥是真正随

  • Python包含一个用于one-time-pad密码密码实现的hacky实现模块。 包名称称为One-Time-Pad,其中包括一个命令行加密工具,该工具使用类似于一次性密码密码算法的加密机制。 安装 (Installation) 您可以使用以下命令安装此模块 - pip install onetimepad 如果要从命令行使用它,请运行以下命令 - onetimepad Code 以下代码有

  • public static UUID randomUUID()静态工厂检索类型4(伪随机生成)的UUID。UUID是使用密码学强的伪随机数生成器生成的。返回:随机生成的UUID 而并没有告诉我什么。我不知道类型4在这个案例中是什么意思。

  • 基本上我们可以有一个只能读取一次的金库密钥吗?

  • 即使输入了正确的电子邮件和密码,同样的错误也会一次又一次地出现。 更多参考请参见我的回复-https://github.com/ajitlol404/smartcontactmanager/tree/master/smartcontactmanager 控制台错误