使用java.security.SecureRandom
SecureRandom random = new SecureRandom();
byte bytes[] = new byte[20];
random.nextBytes(bytes);
将根据
http://docs.oracle.com/javase/7/docs/api/java/security/SecureRandom.html
使用NativePRNG的系统实现生成随机字节。
Java 运行时如何知道该实现在系统上的位置?在 GNU/Linux 上通常是/dev/random 但在 Windows 上情况并非如此。某处有配置文件吗?
谢谢
最佳答案
可以通过检查 SecureRandom.java 的源代码来收集以下信息,该源代码随 JDK 一起提供在 src.zip 中。
使用来源,卢克!
How does Java runtime know where on the system this implementation it is?
这是 JDK 的特定于平台的部分。
SecureRandom
枚举已注册的 java.security.Provider
实例,寻找提供以下类型 java.security.Provider.Service
的实例“安全随机”
。
JDK 通常附带一个内部默认安全提供程序,该提供程序以特定于平台的方式实现该安全提供程序。
如果找不到,它将回退到纯 java SHA1PRNG。
关于java - Java 的 SecureRandom 如何知道系统上可用的 NativePRNG 的哪个实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28088684/