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 相关文章推荐
第十四节--命名空间
Nov 16 PHP
PHP 高级课程笔记 面向对象
Jun 21 PHP
基于OpenCV的PHP图像人脸识别技术
Oct 11 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
Php output buffering缓存及程序缓存深入解析
Jul 15 PHP
PHP+FastCGI+Nginx配置PHP运行环境
Aug 07 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
Jan 19 PHP
配置Nginx+PHP的正确思路与过程
May 10 PHP
浅析php如何实现App常用的秒发功能
Aug 03 PHP
PHP中仿制 ecshop验证码实例
Jan 06 PHP
PHP实现的登录页面信息提示功能示例
Jul 24 PHP
php通过header发送自定义数据方法
Jan 18 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 彩色文字实现代码
2009/06/29 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
javascript 鼠标拖动图标技术
2010/02/07 Javascript
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
javascript时区函数介绍
2012/09/14 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
2013/07/31 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
jQuery插件DataTables分页开发心得体会
2017/08/22 jQuery
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
基于Express框架使用POST传递Form数据
2019/08/10 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
Python实现简单的文件传输与MySQL备份的脚本分享
2016/01/03 Python
Python模块文件结构代码详解
2018/02/03 Python
谈谈python中GUI的选择
2018/03/01 Python
python实现雨滴下落到地面效果
2018/06/21 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
python压包的概念及实例详解
2021/02/17 Python
世界上最好的足球商店:Unisport
2019/03/02 全球购物
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
税务职业生涯规划书范文
2014/09/16 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
用Python制作灯光秀短视频的思路详解
2021/04/13 Python
golang slice元素去重操作
2021/04/30 Golang
sql查询语句之平均分、最高最低分及排序语句
2022/05/30 MySQL