gpt4 book ai didi

java - 我应该定期重新播种 SecureRandom 还是自动发生?

转载 作者:行者123 更新时间:2023-11-29 09:27:41 24 4
gpt4 key购买 nike

我们使用 SecureRandom 如下(使用 Java8):

import java.security.SecureRandom;
private SecureRandom random = new SecureRandom();

正在使用的算法是 NativePRNG

我们应该定期播种吗?

正如所写,NativePRNG 不断从操作系统接收熵(通过从/dev/(u)random 读取)

你怎么看?

最佳答案

https://www.synopsys.com/blogs/software-security/proper-use-of-javas-securerandom/建议在生成“大量 PRNG 输出”时重新播种 SecureRandom 实例。但是,它并没有具体说明什么算大额。这可能取决于使用的 SecureRandom 算法。

Java 文档没有说明会进行重新播种。如果特定算法支持它,您将需要在调用 SecureRandom.getInstance 时明确指定该算法。

在 Java 9 中添加了基于 NIST.SP.800-90Ar1 的 DRBG 实现 ( JEP 273 )。这指定生成器应该在种子生命周期结束时重新播种。你还可以看到这是相应地实现的:sun.security.provider.AbstractDrbg (字段 reseedCounter)

但是,请记住,并非所有 Java 平台都需要支持 DRBG(尽管很可能会支持)。因此,处理它不可用的情况或包括提供 DRBG 的安全提供者。

关于java - 我应该定期重新播种 SecureRandom 还是自动发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45298451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com