mt_rand使用梅森倍捻机算法,这远远优于LCG通常使用的
rand。例如,LCG
的周期仅为 2 32,而mt_rand的周期为2
19937-1。此外,当绘制到多维空间中时,LCG生成的所有值都将位于线或平面上。而且,不仅在实践上可行,而且相对容易地确定LCG的参数。LCG的唯一优势是可能稍快一些,但是在使用php进行编码时,规模是完全不相关的。
但是,
mt_rand它 也不适合用于加密目的 (生成令牌,密码或加密密钥)。
如果需要加密随机性,请
random_int在php7中使用。在较早的php版本上,请从符合POSIX的操作系统上阅读
/dev/urandom或
/dev/random在其上阅读。



