<?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));