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 相关文章推荐
VFP与其他应用程序的集成
Oct 09 PHP
一段防盗连的PHP代码
Dec 06 PHP
收集的二十一个实用便利的PHP函数代码
Apr 22 PHP
解决PHP超大文件下载,断点续传下载的方法详解
Jun 06 PHP
PHP批量上传图片的具体实现方法介绍.
Feb 26 PHP
PHP获取一个字符串中间一部分字符的方法
Aug 19 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
May 27 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
Nov 20 PHP
PHP静态延迟绑定和普通静态效率的对比
Oct 20 PHP
PHP常见数组排序方法小结
Aug 20 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
Dec 02 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 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
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
PHP var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
php数组对百万数据进行排除重复数据的实现代码
2010/06/08 PHP
yii框架源码分析之创建controller代码
2011/06/28 PHP
php抽象类用法实例分析
2015/07/07 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
document.getElementById介绍
2011/09/13 Javascript
一个判断抢购时间是否到达的简单的js函数
2014/06/23 Javascript
jquery用data方法获取某个元素上的事件
2014/06/23 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
javascript加载xml 并解析各节点的值(实现方法)
2016/10/12 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
Angular2 路由问题修复详解
2017/03/01 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
2020/02/26 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
Python文件夹与文件的操作实现代码
2014/07/13 Python
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
梅西百货官网:Macy’s
2020/08/04 全球购物
大学生求职自荐信
2013/12/12 职场文书
机关门卫制度
2014/02/01 职场文书
大专生毕业的自我评价
2014/02/06 职场文书
婚纱店策划方案
2014/05/22 职场文书
体育教师研修感悟
2015/11/18 职场文书
python使用pygame创建精灵Sprite
2021/04/06 Python