Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
File upload MD5 uuid冲突?_File Upload_File_Md5_Collision Detection_Uuid - Fatal编程技术网

File upload MD5 uuid冲突?

File upload MD5 uuid冲突?,file-upload,file,md5,collision-detection,uuid,File Upload,File,Md5,Collision Detection,Uuid,我正在处理图像上传,我想要一些关于命名文件和文件夹的建议。目前,我正在使用以下命令生成文件名: md5( microtime() ) . $this->user_id 它的输出类似于: e89ae1857038d0e5d0f8092e6c5390b91 然后,我使用该文件名的前3个字符生成文件夹。 这将类似于: /e/8/9 因此,它最终是: /e/8/9/e89ae1857038d0e5d0f8092e6c5390b91 我正在使用md5,这样它就可以在文件夹中均匀地分布文件。这是一个

我正在处理图像上传,我想要一些关于命名文件和文件夹的建议。目前,我正在使用以下命令生成文件名:

md5( microtime() ) . $this->user_id
它的输出类似于:

e89ae1857038d0e5d0f8092e6c5390b91

然后,我使用该文件名的前3个字符生成文件夹。 这将类似于:

/e/8/9

因此,它最终是:

/e/8/9/e89ae1857038d0e5d0f8092e6c5390b91

我正在使用md5,这样它就可以在文件夹中均匀地分布文件。这是一个好的uuid吗?有可能发生碰撞吗


提前感谢。

任何哈希都有可能发生冲突。仔细想想,散列接受无限多的输入,并将其转换为有限多的输出


但是,对于所有实际(非学术)意义而言,根本不存在碰撞。2^128是一个如此巨大的数字,即使在宇宙热死之前也不会发生。

即使我在末尾添加了一个递增的用户id?如果您的用户id是唯一的,那么就不会发生这样的冲突。啊。我以为你的用户id在括号里。不,根据定义,您不应该发生冲突。(需要明确的是,即使您使用的是世界上最差的哈希算法,也不会发生冲突。例如,如果您的MD5始终返回一个包含32个零的字符串,会怎么样?您的唯一用户id仍将完全消除重复项。)