熵池与SecureRandom
所属分类 architecture
浏览量 1482
熵源 entropy source
tomcat7 sessionid 生成 java.security.SecureRandom
private String secureRandomAlgorithm = "SHA1PRNG";
/dev/random 和 /dev/urandom
/dev/random可生成高随机性的公钥或一次性密码本。
若熵池空了,对/dev/random的读操作将会被阻塞,直到收集到足够的环境噪声为止
/dev/urandom 非阻塞的随机数发生器
可以作为生成较低强度密码的伪随机数生成器
linux内核随机数生成器采用SHA1散列算法而非加密算法,是为了避开法律风险(密码出口限制)。
tomcat文档建议采用非阻塞熵源(entropy source) , 增加启动速度
-Djava.security.egd=file:/dev/./urandom
注意中间的 .
egd 熵收集守护进程(entropy gathering daemon)
FreeBSD操作系统实现了256位的Yarrow算法变体,以提供伪随机数流。
与Linux的/dev/random不同,FreeBSD的/dev/random不会产生阻塞,
与Linux的/dev/urandom相似,提供了密码学安全的伪随机数发生器,而不是基于熵池。
而FreeBSD的/dev/urandom则只是简单的链接到了/dev/random
上一篇
下一篇
日志框架冲突及解决方法
linux熵池太小导致随机函数阻塞
Random和SecureRandom
老程序员的20条编码原则
sql优化建议
jvm codecache 相关整理