百度百科的链接:https://baike.baidu.com/item/UUID/5921266
UUID 的目的是让分布式系统中的所有元素,都能有唯一的辨识资讯。
UUID 能用完吗?UUID是由一组32位数的16进制数字所构成,是故UUID理论上的总数为16^32=2^128,约等于3.4 x 10^38。也就是说若每纳秒产生1兆个UUID,要花100亿年才会将所有UUID用完。
UUID的标准型式包含32个16进制数字,以连字号分为五段,形式为8-4-4-4-12的32个字符。示例:
-
550e8400-e29b-41d4-a716-446655440000
PHP 怎么产生呢?function uuid($prefix = ''){ $chars = md5(uniqid(mt_rand(), true)); $uuid = substr($chars,0,8) . '-'; $uuid .= substr($chars,8,4) . '-'; $uuid .= substr($chars,12,4) . '-'; $uuid .= substr($chars,16,4) . '-'; $uuid .= substr($chars,20,12); return $prefix . $uuid; }
我平时习惯这样产生32位的:
function actId($attach=''){ $str = uniqid(rand(), true); $str .= $attach; return md5($str); }
我们平时做API的时候经常会用到token,下面方法会生成一个40位的token
function setToken(){ $str = md5(uniqid(md5(microtime(true)),true)); $str = sha1($str); return $str; }