/dev/random及/dev/urandom均使用PRNG生成伪随机数,所不同的是:
(1)/dev/random以系统噪声为参数,生成伪随机数。当系统噪声信息变化不足时,系统将阻止进程从/dev/random中读取伪随机数结果。因此,/dev/random所产生的伪随机数随机性更强,适合对安全级别要求较高的情况。
(2)/dev/urandom不去考虑系统噪声信息pool变化情况,直接使用PRNG生成伪随机数,效率更高,速度更快,但牺牲了安全性。
参考链接:https://stackoverflow.com/questions/3690273/did-i-understand-dev-urandom
https://khacnam.net/dev-random-vs-dev-urandom-and-are-they-secure.html
https://www.2uo.de/myths-about-urandom/