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中Cannot send session cache limiter 的问题的方法
Apr 27 PHP
PHP 变量类型的强制转换
Oct 23 PHP
PHP中删除变量时unset()和null的区别分析
Jan 27 PHP
PHP中使用cURL实现Get和Post请求的方法
Mar 13 PHP
解析thinkphp import 文件内容变量失效的问题
Jun 20 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 PHP
PHP中捕获超时事件的方法实例
Feb 12 PHP
php按单词截取字符串的方法
Apr 07 PHP
Zend Framework实现多文件上传功能实例
Mar 21 PHP
PHP使用mysqli操作MySQL数据库的简单方法
Feb 04 PHP
laravel自定义分页的实现案例offset()和limit()
Oct 15 PHP
PHP如何使用JWT做Api接口身份认证的实现
Feb 03 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操作数组相关函数
2011/02/03 PHP
linux下实现定时执行php脚本
2015/02/13 PHP
php基于session锁防止阻塞请求的方法分析
2017/08/07 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
用js实现trim()的解决办法
2013/04/16 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
2017/01/18 Javascript
jquery仿微信聊天界面
2017/05/06 jQuery
angularjs之$timeout指令详解
2017/06/13 Javascript
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
Python中__slots__属性介绍与基本使用方法
2018/09/05 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
复化梯形求积分实例——用Python进行数值计算
2019/11/20 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
2020/02/20 Python
Python super()方法原理详解
2020/03/31 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
python 实现图片裁剪小工具
2021/02/02 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
工作失误检讨书范文大全
2014/01/13 职场文书
劲霸男装广告词
2014/03/21 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
工伤私了协议书范本
2014/11/24 职场文书
车辆管理制度范本
2015/08/05 职场文书
医生行业员工的辞职信
2019/06/24 职场文书
导游词之上海豫园
2019/10/24 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书