我需要生成加密强大的随机数和字节数组.为此,我正在使用Java的SecureRandom类.但我不确定在加密强度方面选择哪种PRNG算法.
以下哪个实例会产生更难以预测的数字?或者他们是平等的?
SecureRandom nativePrng = SecureRandom.getInstance("NativePRNG")
SecureRandom sha1Prng = SecureRandom.getInstance("SHA1PRNG")
Run Code Online (Sandbox Code Playgroud)
此外,我们能够使用"SUN"提供程序(例如SecureRandom.getInstance("SHA1PRNG", "SUN"))生成这些实例.这会有所作为吗?
提前致谢.
PRNG通常有一个循环,之后生成的随机数重复.当SecureRandom的实例创建如下时,SecureRandom of Java的循环是什么:
SecureRandom random = SecureRandom.getInstance("SHA1PRNG");