UUID

百度百科的链接: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;
    }

发表评论

电子邮件地址不会被公开。 必填项已用*标注