gpt4 book ai didi

java - 如果无法使用 SecureRandom,是否可以回退到 Random?

转载 作者:行者123 更新时间:2023-12-01 09:44:05 24 4
gpt4 key购买 nike

我有一个 Java 库,其中有一个类 (ShrubSecureRandom),它使用 SecureRandom 生成数字、句子等。
它用来获取 Random 类的方法如下:

public Random getSRGInstance() {
Random instanceToReturn;
try {
instanceToReturn = SecureRandom.getInstance("SHA1PRNG");
} catch (Exception e) {
System.out.println("SecureRandom algorithm not found! Reverting to INSECURE Random instance...");
instanceToReturn = new Random();
}
return instanceToReturn;
}

如果代码在创建 SecureRandom 类时出现异常(NoSuchAlgorithmException 等),它将改用 Random 类。
我的问题是:这安全吗?如果没有,我该怎么办?

最佳答案

如果您不受 RNG 算法的限制(例如,您正在游戏中模拟骰子,并且您想使用比 Random 更好的算法),您可以返回一个 new SecureRandom()为您的 Java VM 实现默认的随机数算法。在这种情况下,您不关心实现细节,但可以保证生成器加密性强

请注意,某些用途确实需要特定的算法。例如,在生成 AES-256 加密 key 时,RNG 必须提供至少 256 位的熵,而 SHA1PRNG 则不然。

关于java - 如果无法使用 SecureRandom,是否可以回退到 Random?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38211781/

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