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实现文件安全下载
Oct 09 PHP
PHP+MYSQL的文章管理系统(一)
Oct 09 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
Apr 09 PHP
header中Content-Disposition的作用与使用方法
Jun 13 PHP
php中3des加密代码(完全与.net中的兼容)
Aug 02 PHP
体育彩票排列三组选三算法分享
Mar 07 PHP
php提取字符串中网站url地址的方法
Dec 03 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
在Nginx上部署ThinkPHP项目教程
Feb 02 PHP
php将图片保存为不同尺寸图片的图片类实例
Mar 30 PHP
php基于双向循环队列实现历史记录的前进后退等功能
Aug 08 PHP
php实现CSV文件导入和导出
Oct 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读取大文件示例分享(文件操作类)
2014/04/13 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
Js动态创建div
2008/09/25 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
2013/09/22 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
微信小程序时间标签和时间范围的联动效果
2019/02/15 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
使用python实现knn算法
2017/12/20 Python
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
2018/02/18 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
python 递归相关知识总结
2021/03/03 Python
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
2014年九一八事变演讲稿
2014/09/14 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
爱的教育读书笔记
2015/06/26 职场文书
小学安全教育主题班会
2015/08/12 职场文书
导游词之山东八仙过海景区
2019/11/11 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
十大最强飞行系宝可梦,BUG燕上榜,第二是飞行系王者
2022/03/18 日漫
JavaWeb实现显示mysql数据库数据
2022/03/19 Java/Android