SecureRandom:init 一次还是每次需要它?
2022-09-01 09:45:31
我们的团队正在使用 SecureRandom 生成密钥对列表(SecureRandom 被传递到 KeyPairGenerator)。我们无法就使用以下两个选项中的哪一个达成一致:
每次我们需要生成密钥对时创建一个新实例
初始化静态实例并将其用于所有密钥对
哪种方法通常更好,为什么?
补充:我的直觉是,第二种选择更安全。但我唯一的论点是基于伪随机性是从当前时间戳派生的假设的理论攻击:有人可能会看到密钥对的创建时间,猜测周围时间间隔中的时间戳,计算可能的伪随机序列,并获得密钥材料。
补充:我对基于时间戳的决定论的假设是错误的。这就是 Random 和 SecureRandom 之间的区别。所以,看起来答案是:就安全性而言,这并不重要。