UUID.randomUUID()是否适合用作一次性密码?

正如前面所讨论的,确认电子邮件应该有一个独特的,(几乎)未猜测的代码-

基本上是一个一次性密码 --in确认链接。

UUID.randomUUID()文档说:

使用加密强度高的伪随机数生成器生成UUID。

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

回答:

根据UUID规范:

不要以为UUID很难猜测;例如,它们不应用作安全功能(仅拥有所有权即可授予访问权限的标识符)。可预测的随机数源将加剧这种情况。

同样,UUID仅具有16个可能的字符(0到F)。您可以使用SecureRandom(感谢@erickson)生成更紧凑,更明确安全的随机密码。

import java.security.SecureRandom;

import java.math.BigInteger;

public final class PasswordGenerator {

private SecureRandom random = new SecureRandom();

public String nextPassword() {

return new BigInteger(130, random).toString(32);

}

}

以上是 UUID.randomUUID()是否适合用作一次性密码? 的全部内容, 来源链接: utcz.com/qa/418675.html

回到顶部