gpt4 book ai didi

php - SHA512在PHP中生成随机数

转载 作者:可可西里 更新时间:2023-11-01 00:33:46 24 4
gpt4 key购买 nike

我正在使用 $blockhash[$i] = rand().time().rand()

用随机数填充一个数组

然后,对于该数组中的每个随机数,我计算相应的 SHA512

$SecretKey = "60674ccb549f1988439774adb82ff187e63a2dfd403a0dee852e4e4eab75a0b3";
$sha = hash_hmac('sha512', $value, $SecretKey);

拆分它:

$pool  = str_split($sha, 2);

然后我从 $pool 数组中获取第一个数字,将 hex 转换为 dec 并将其限制在 1 和 50 之间:

$dec = hexdec($pool[0]) % 50 + 1;

问题是数字不是随机的,我不知道为什么。我正在计算从 1 到 50 的每个数字的频率,但数字 1、2、3、4、5 和 6 比其他数字出现的频率更高。看图

enter image description here

为什么会发生这种情况以及如何解决?谢谢!

最佳答案

您要转换为十进制的 2 个十六进制字符将在 0-255 的范围内。您将其修改为 50 并加 1,使 1-6(范围(0-5)+1)在 1-256 中出现 6 次,而其他每个数字仅出现 5 次。这将导致这些数字增加约 20%。

关于php - SHA512在PHP中生成随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15794281/

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