散分,生日悖论果然不是骗人的附测试代码,很容易算出一对define('R', 1e5);
$_CRC32 = array();
for($i=0;;++$i)
{
$tmp = sprintf('%X', crc32($i));
if(isset($_CRC32[$tmp]))
{
echo "{$_CRC32[$tmp]}#{$i}\n";
break;
}
if($i<R)
{
$_CRC32[$tmp] = $i;
}
}

解决方案 »

  1.   

    年底一个月,没能坚持,大概跑了10次,健身房,伪健身爱好者确实很容易冲突,"86821" "14740600",测试代码中,这一对就是本意想缩短索引字段长度,满足不了需求,hoho~~~~~~另外,经同事提醒,Ecs商城的缓存ID是用crc32计算的经过计算,找到一对、中文UTF-8版本,会冲突商品页缓存id,86833  14740612当然,对于B2C的应用,几乎可以忽略的问题。