php生成guid的方法

时间:2012-12-20     作者:smarteng     分类: PHP相关


今天看使用 Salt + Hash 来为密码加密,

这里面的salt都是随机生成的而且不一样,

看到他们用的是guid这个东西,就想用php实现以下guid,

心想php一定有一个函数可以搞定,mysql都有 select uuid();

查看一番php手册,居然没有,(有一个是com的),

就实现了一个。

<?php

function guid(){

   if (function_exists('com_create_guid')){

       return com_create_guid();

   }else{

       mt_srand((double)microtime()*10000);//optional for php 4.2.0 and up.

       $charid = strtoupper(md5(uniqid(rand(), true)));

       $hyphen = chr(45);// "-"

       $uuid = chr(123)// "{"

               .substr($charid, 0, 8).$hyphen

               .substr($charid, 8, 4).$hyphen

               .substr($charid,12, 4).$hyphen

               .substr($charid,16, 4).$hyphen

               .substr($charid,20,12)

               .chr(125);// "}"

       return $uuid;

   }

}

echo guid();

?> 

测试通过。