【发布时间】:2012-07-05 09:51:43
【问题描述】:
在 php 文档中,我发现了这个注释:
在 32 位和 64 位系统(OS X 和 Linux)上,mt_getrandmax() 返回 2147483647
我已经使用提供的简单功能确认了这一点
function gethighest()
{
return mt_getrandmax();
}
$hello = gethighest();
echo '<b>'.$hello.'</b>';
我正在使用这个 sn-p 来生成一个唯一的 id
$number = mt_rand(163245,978534);
$unique_id = crypt($number);
echo md5($unique_id).'<br/>';
我的问题是,mt_rand 的最大值是什么意思?一旦达到最大值,id 会开始重复吗?
【问题讨论】:
-
你这样做只是为了生成一个唯一的 id 吗?必须是数字吗?
-
为什么要使用两种不同的散列算法(
crypt()和md5())来获取散列密钥?我建议一个就足够了。您还可以使用sha1(),它会为您提供一个包含任何输入的 40 字符的十六进制字符串……