繁体   English   中英

Java的SecureRandom如何知道系统上可用的NativePRNG实现?

[英]How does Java's SecureRandom know which implementation of NativePRNG is available on the system?

使用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中收集。

使用消息来源,卢克!

Java运行时如何知道此实现在系统上的位置?

这是JDK特定于平台的部分。

SecureRandom枚举注册java.security.Provider情况下,寻找一个提供java.security.Provider.Service类型"SecureRandom" JDK通常附带一个内部默认安全提供程序,该提供程序以特定于平台的方式来实现。

如果找不到任何内容,则返回纯Java SHA1PRNG。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM