md5输出相同值的几率是多少。我想不出任何事情,但想得到其他意见。
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();
它没有哈希传递我用它来为我的系统生成唯一的ID。检查每个id不是一个好选择,因为id将存储在不同的地方。
结论。谢谢大家。 通过这篇文章中的评论我不得不坐下来重新思考如何携带id系统。我将减少使用auto_increment用于用户id,使用uniqid()来处理系统事件并使用hash_password()之类的东西来处理我甚至没有触及的其他部分。 最好拉上我的袖子......
答案 0 :(得分:1)
我没有看到使用md5生成唯一ID的观点。显然,您并没有尝试创建加密安全值,无论如何它在您的示例中都不安全。 请改用uniqid()函数。它专为非碰撞而设计。它基于当前时间(以微秒为单位)创建唯一标识符。您可以使用第二个参数(更多熵)来创建更多唯一值。
$uid = uniqid('some prefix', true);
答案 1 :(得分:0)
md5不再安全了。从理论上讲,它可以从不同的原点获得相同的哈希值,这并不容易,但它是可能的。 看来你想要生成独特的ID,所以也许是标准的uuid它是你的选择:https://docs.mongodb.com/manual/geospatial-queries/
答案 2 :(得分:0)
谢谢大家。通过这篇文章中的评论我不得不坐下来重新思考如何携带id系统。我将减少使用auto_increment用于用户id,使用uniqid()来处理系统事件并使用hash_password()之类的东西来处理我甚至没有触及的其他部分。最好拉上我的袖子......