php生成局部唯一识别码LUID的代码


Posted in PHP onOctober 06, 2012

UUID(Universally Unique Identifier),GUID都是希望在整个时空范围内能产生唯一识别码,这在分布式计算环境下是必要的. 然而,如果仅仅是想在一个受限定的局部环境下,想生成一个"局部唯一识别码",使用UUID就是杀鸡用牛刀,这个"局部唯一识别码",我称之为LUID(Local Unique Identifier)

比如我在用php开发网站程序时,为避免用户同时多次打开同一个网页导致session名称冲突问题, 就希望保存的session不是$_SESSION['param'],而是$_SESSION[$luid]['param'],再通过其他方式传递$luid值,保证'param'参数不被覆盖. 查找了一下别人的解决方式,都是生成UUID,而生成UUID的算法洋洋洒洒上百行. 我考虑到因为是在SESSION空间里,是一个受限定的环境,其唯一性的强度不必太高,只要在同一个SESSION的生存期限内唯一就可以了,于是便有了下面的代码:

/** 
* 返回一个唯一在本地系统中独一无二的字符串, 
* 返回的是32个字符的字符串,形式如'7dac352074f221f3edc74d265c65a636',或'd198d8fc56ffed627f3f8313d6f06acf' 
*/ 
function LUID(){ 
return MD5(microtime()); 
}

其实就一行.return MD5(microtime());

按道理microtime()返回的字符串就已经是唯一的了,我测了一下,即使连续执行microtime(),返回值也有100us以上的差别,而使用者点击,并在网络上传递再由服务器处理的间隔远不止几十ms. 加上md5只是让结果杂乱化.

PHP 相关文章推荐
PHP小技巧搜集,每个PHPer都来露一手
Jan 02 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
Apr 26 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
Jul 15 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
Mar 07 PHP
调试WordPress中定时任务的相关PHP脚本示例
Dec 10 PHP
PHP读取大文件末尾N行的高效方法推荐
Jun 03 PHP
PHP入门教程之表单与验证实例详解
Sep 11 PHP
PHP实现小偷程序实例
Oct 31 PHP
thinkPHP模板中函数的使用方法示例
Nov 30 PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 PHP
详解laravel passport OAuth2.0的4种模式
Nov 04 PHP
PHP引擎php.ini参数优化深入讲解
Mar 24 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
Oct 06 #PHP
PHP中3种生成XML文件方法的速度效率比较
Oct 06 #PHP
PHP中的生成XML文件的4种方法分享
Oct 06 #PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
Oct 05 #PHP
PHP正则表达式之定界符和原子介绍
Oct 05 #PHP
PHP超级全局变量数组小结
Oct 04 #PHP
PHP中数字检测is_numeric与ctype_digit的区别介绍
Oct 04 #PHP
You might like
php代码把全角数字转为半角数字
2007/12/10 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
tagName的使用,留一笔
2006/06/26 Javascript
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
JS验证邮箱格式是否正确的代码
2013/12/05 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
2015/11/25 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
vue+webpack 更换主题N种方案优劣分析
2019/10/28 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
Python时间获取及转换知识汇总
2017/01/11 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
css3实现背景图片拉伸效果像桌面壁纸一样
2013/08/19 HTML / CSS
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
英文自荐信
2013/12/15 职场文书
家长会主持词
2014/03/26 职场文书
新农村建设标语
2014/06/24 职场文书
2019 入党申请书范文
2019/07/10 职场文书
使用JS前端技术实现静态图片局部流动效果
2022/08/05 Javascript