php uniqid mt_rand 生成随机不重复字符串

前端之家收集整理的这篇文章主要介绍了php uniqid mt_rand 生成随机不重复字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

方法一:

PHP

$str = uniqid(mt_rand(),1);

echo 'sha1: ',sha1($str);

echo '
';

echo 'MD5:',md5($str);

?>

采用uniqid函数,配合mt_rand随机函数,最后使用散列值得出最终唯一值。

但是通过测试中,发现随机数的唯一性有些相同部分,大概有11位相同的(但无大碍)

第二种方法:GUID

PHP

echo sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X',mt_rand(0,65535),mt_rand(16384,20479),mt_rand(32768,49151),65535));

echo "
";

echo sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X',65535));

?>

实例三:用uniqidmt_rand生成随机不重复字符串的方法

PHP

//使用uniqid mt_rand 生成随机不重复字符串的方法

$snKeys=array();

$total=10;//设置生成数量

$prefix='code';//字符串前缀

while(count($snKeys) < $total) {

$snKeys[$prefix . md5(uniqid(mt_rand(),true))] = null;

}

print_r($snKeys);

?>

猜你在找的PHP相关文章