php中使用uniqid mt_rand 生成随机不重复字符串的方法
<?PHP
$str
=uniqid(mt_rand(),1);
echo
'sha1:'
,sha1(
$str
);
echo
'<br>'
;
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(0,65535),mt_rand(0,65535),mt_rand(16384,20479),mt_rand(32768,49151),mt_rand(0,65535),mt_rand(0,65535),mt_rand(0,65535));
echo
"<br>"
;
echo
sprintf(
'%04X%04X-%04X-%04X-%04X-%04X%04X%04X'
,mt_rand(0,65535),mt_rand(0,65535),mt_rand(0,65535),mt_rand(16384,20479),mt_rand(32768,49151),mt_rand(0,65535),mt_rand(0,65535),mt_rand(0,65535));
echo
"<br>"
;
echo
sprintf(
'%04X%04X-%04X-%04X-%04X-%04X%04X%04X'
,mt_rand(0,65535),mt_rand(0,65535),mt_rand(0,65535),mt_rand(16384,20479),mt_rand(32768,49151),mt_rand(0,65535),mt_rand(0,65535),mt_rand(0,65535));
echo
"<br>"
;
echo
sprintf(
'%04X%04X-%04X-%04X-%04X-%04X%04X%04X'
,mt_rand(0,65535),mt_rand(0,65535),mt_rand(0,65535),mt_rand(16384,20479),mt_rand(32768,49151),mt_rand(0,65535),mt_rand(0,65535),mt_rand(0,65535));
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。