首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取唯一ID

获取唯一ID
EN

Stack Overflow用户
提问于 2018-06-10 16:38:41
回答 3查看 305关注 0票数 0

md5输出相同值的可能性有多大。我什么都想不起来,只是想听听别人的意见。

代码语言:javascript
运行
复制
function theid(){  
    $rand = random_int("1000000","9999999");
    $idcont = date("d.m.Y").$rand.time("h:i:s").$rand;
    $sysid = md5($idcont);  
    return $sysid; 
} 
$oneid = theid();

它不散列传递,我使用它为我的系统生成唯一的ids。检查每个id不是一个好的选择,因为id将存储在不同的地方。

结论。谢谢大家。通过在这篇文章中的评论,我不得不坐视不理,重新思考我是如何实现真正的系统的。我将减少对用户id使用auto_increment,使用uniqid()来处理系统事件,并将类似于hash_password()的内容用于我在这里没有触及的其他部分。最好拉起我的袖子..。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-10 17:26:03

我不认为使用md5生成唯一ids的意义。显然,您没有尝试创建加密安全值,而且在您的示例中它也是不安全的。函数改为uniqid()函数。它是为无碰撞而设计的。它根据当前时间(以微秒为单位)创建唯一标识符。您可以使用第二个参数(更大的熵)来创建更独特的值。

代码语言:javascript
运行
复制
$uid = uniqid('some prefix', true);

票数 1
EN

Stack Overflow用户

发布于 2018-06-10 17:16:54

md5不再安全了。从理论上讲,可以从不同的来源获得相同的散列,这并不容易,但它是可能的。似乎您想要生成唯一的ids,所以可能是标准的uuid,这是您的一个选项:https://docs.mongodb.com/manual/geospatial-queries/

票数 0
EN

Stack Overflow用户

发布于 2018-06-10 19:40:34

谢谢大家。通过在这篇文章中的评论,我不得不坐视不理,重新思考我是如何实现真正的系统的。我将减少对用户id使用auto_increment,使用uniqid()来处理系统事件,并将类似于hash_password()的内容用于我在这里没有触及的其他部分。最好拉起我的袖子..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50785863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档