gpt4 book ai didi

php - mt_rand 的缺点是什么?

转载 作者:IT王子 更新时间:2023-10-29 01:20:44 24 4
gpt4 key购买 nike

偏见的定义是什么:

The distribution of mt_rand() return values is biased towards even numbers on 64-bit builds of PHP when max is beyond 2^32.

如果是alternate tie-breaking rules for rounding中所述的那种偏见,我认为这并不重要(因为偏差并不明显)。

除了mt_rand()claimedrand() 快四倍,只需在前面添加三个字符!

假设 mt_rand 可用,使用它有什么缺点?

最佳答案

mt_rand 使用 Mersenne Twister 算法,比 rand 通常使用的 LCG 要好得多。例如,LCG 的周期仅为 232,而 mt_rand 的周期为 219937 − 1。此外,LCG 生成的所有值都将为 lie on lines or planes当绘制到多维空间时。此外,确定LCG的参数不仅实际可行,而且相对容易。 LCG 的唯一优势是速度可能稍快,但在用 php 编码时完全无关紧要。

但是,mt_rand 也不适合加密目的( token 、密码或加密 key 的生成)。

如果您需要密码随机性,请在 php 7 中使用 random_int。在较旧的 php 版本中,从 /dev/urandom/dev/random 读取符合 POSIX 的文件操作系统。

关于php - mt_rand 的缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7808021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com