生成非固定长度的大随机数(bigint)

时间:2015-01-21 15:51:56

标签: php mysql

如何生成非固定长度的大随机数? (例如在MySQL的bigint范围内)。 mt_rand()函数不支持如此大的数字。

2 个答案:

答案 0 :(得分:0)

使用多个随机函数:

const max_limit=10000;
a=mt_rand()*max_limit*max_limit + mt_rand()*max_limit + mt_rand();

答案 1 :(得分:0)

MySQL的BIGINT大8字节。让我们假设一个未签名的BIGINT。

echo unpack('H*', mcrypt_create_iv(8))[1];

或php版本< 5.4不支持函数数组解除引用

echo current(unpack('H*', mcrypt_create_iv(8)));

见:
http://docs.php.net/function.mcrypt-create-iv
http://docs.php.net/function.pack