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