首页  

熵池与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 相关整理