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+dbfile开发小型留言本
Oct 09 PHP
PHP 和 MySQL 基础教程(三)
Oct 09 PHP
PHP写MySQL数据 实现代码
Jun 15 PHP
Admin generator, filters and I18n
Oct 06 PHP
php字符串分割函数explode的实例代码
Feb 07 PHP
php页面消耗内存过大的处理办法
Mar 18 PHP
php cookie使用方法学习笔记分享
Nov 07 PHP
详解PHP中的状态模式编程
Aug 11 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
Dec 19 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
May 04 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 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
PHPMailer 中文使用说明小结
2010/01/22 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
异步加载script的代码
2011/01/12 Javascript
潜说js对象和数组
2011/05/25 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
纯javascript移动优先的幻灯片效果
2015/11/02 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
js 获取html5的data属性实现方法
2017/07/28 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
2017/11/07 Javascript
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
2019/09/17 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
详解Vue Cli浏览器兼容性实践
2020/06/08 Javascript
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
在Python中处理字符串之isdecimal()方法的使用
2015/05/20 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
python爬虫超时的处理的实例
2018/12/19 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
2019/12/10 Python
CSS3 Pie工具推荐--让IE6-8支持一些优秀的CSS3特性
2014/09/02 HTML / CSS
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
印尼最大的网上书店:Gramedia.com
2018/09/13 全球购物
职业生涯规划怎么写
2013/12/29 职场文书
幼儿园小班教学反思
2014/02/02 职场文书
文明寝室标语
2014/06/13 职场文书
我的中国梦主题班会
2015/08/14 职场文书
redis中lua脚本使用教程
2021/11/01 Redis