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