Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取唯一ID_Php - Fatal编程技术网

Php 获取唯一ID

Php 获取唯一ID,php,Php,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

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,使用uniqid()来处理系统事件,并使用类似hash_password()的内容来处理我在这里没有涉及到的其他部分。
最好把我的袖子拉起来……

md5不再安全了。从理论上讲,从不同的来源获得相同的散列是可能的,这并不容易,但这是可能的。
您似乎想要生成唯一的ID,因此可能需要标准uuid,这是您的一个选项:

我不认为使用md5生成唯一ID有什么意义。显然,您并没有试图创建加密安全的值,而且在您的示例中它也不会安全。 改用uniqid()函数。它是为防碰撞而设计的。它基于当前时间(以微秒为单位)创建唯一标识符。您可以使用第二个参数(更多熵)来创建更多的唯一值

$uid = uniqid('some prefix', true);

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

为了将来,使用代码格式,而不是引用。让你的代码易于阅读,否则你将得不到你想要的答案。在$idcont中有$rand两次似乎是多余的。与md5发生冲突的可能性相当低,但是否有原因不能依赖数据库中的自动增量列?Just use
uniqid()
的可能重复?还是一个自动递增的ID?我知道md5。出于这个原因,在代码下面添加了一段。uuid是Niet删除链接之前我没有想到的一个选项。我将使用iniqid()来处理系统中的事件。谢谢