我一直认为我的代码生成的是非常随机的字符串,但我一直按F5约10分钟,我一次显示10个字符串,我有三个DUPLICATES,UNIBON,ZANOPE和ZOTAXS。PHP随机字符串生成器...并非如此随机
任何人都可以解释为什么这是当我虽然有代码26^6的可能性吗?
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$pass = '';
for ($i = 0; $i < $len; $i++){
$pass .= $chars[(rand() % strlen($chars))];
}
return $pass;
任何意见将不胜感激。
感谢
使用mt_rand第一个重复发生在10至60秒之间的平均水平,这似乎还好,不是吗?
echo 'start: '.date('H:i:s');
for ($i = 1; ; $i++) {
$testarr[] = passGen(6);
$new = passGen(6);
if (in_array($new,$testarr)){
echo '<br>end: '.date('H:i:s');
echo '<br>string: '.$new;
echo '<br>count: '.count($testarr);
break;
}
}
可重复获得相同的三个副本?大声笑... – 2012-03-28 14:26:32
http://xkcd.com/221/ – 2012-03-28 14:27:13
也许尝试'rand(0,strlen($ chars))' – phimuemue 2012-03-28 14:28:23