MD5 uuid 冲突?
我正在处理图像上传,我想要一些有关命名文件和文件夹的建议。目前,我正在使用以下内容生成文件名:
md5( microtime() ) . $this->user_id
输出类似于:
e89ae1857038d0e5d0f8092e6c5390b91
然后,我使用该文件名的前 3 个字符来生成文件夹。 这将类似于:
/e/8/9
所以它最终会是:
/e/8/9/e89ae1857038d0e5d0f8092e6c5390b91
我正在使用 md5,所以它有点将文件均匀分布在文件夹中。这是一个好的 uuid 吗?有没有碰撞的可能?
提前致谢。
I'm dealing with image uploads and I'd like some suggestions on naming files and folders. Currently, I'm generating a file name using the following:
md5( microtime() ) . $this->user_id
That outputs something like:
e89ae1857038d0e5d0f8092e6c5390b91
I then take the first 3 characters of that file name to generate the folders.
Which will be something like:
/e/8/9
So it ends up being:
/e/8/9/e89ae1857038d0e5d0f8092e6c5390b91
I'm using the md5 so that it somewhat evenly distributes the files across the folders. Is that a good uuid? Is there a chance for collision?
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于任何哈希,都有可能发生冲突。如果您考虑一下,散列需要无限数量的输入并将其转换为有限数量的输出。
但是,对于所有实际(非学术)影响来说,不存在碰撞这样的事情。 2^128是一个如此巨大的数字,即使在宇宙热寂之前也不会发生。
With any hash, there is a chance for collision. If you think about it, a hash takes an infinite number of inputs and turns it into a finite number of outputs.
But, for all practical (non-academic) implications, there is no such thing as a collision. 2^128 is such a huge number it will never happen before even the heat death of the universe.