MD5 uuid 冲突?

发布于 2024-10-20 13:28:05 字数 402 浏览 4 评论 0原文

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

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空名 2024-10-27 13:28:05

对于任何哈希,都有可能发生冲突。如果您考虑一下,散列需要无限数量的输入并将其转换为有限数量的输出。

但是,对于所有实际(非学术)影响来说,不存在碰撞这样的事情。 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文