我在亚马逊S3上有一个图像库。对于每个图像,我md5我的服务器上的源URL加上一个时间戳,以获得唯一的文件名。因为S3不能有子目录,所以我需要将所有这些图像存储在一个平面文件夹中。
我需要担心生成的MD5散列值中的冲突吗?
额外的好处:在我开始看到MD5产生的哈希值发生冲突之前,我可以有多少个文件?
发布于 2008-10-14 15:46:53
S3可以有子目录。只需在键名中添加"/“,您就可以访问这些文件,就像它们位于不同的目录中一样。我使用它在S3中根据用户ID将用户文件存储在不同的文件夹中。
例如:"mybucket/users/1234/somefile.jpg“。它与文件系统中的目录并不完全相同,但是S3应用编程接口有一些特性使它的工作方式几乎相同。我可以要求它列出所有以"users/1234/“开头的文件,它会显示该”目录“中的所有文件。
发布于 2008-10-14 15:47:34
等等,是不是:
md5(filename) + timestamp
或者:
md5(filename + timestamp)
如果是前者,你基本上就是GUID了,我不担心这一点。如果是后者,那么请参阅Karg关于最终将如何遇到冲突的帖子。
发布于 2008-10-14 15:45:59
碰撞的粗略经验法则是值范围的平方根。您的MD5签名可能有128位长,因此您可能会看到超过2^64个图像的冲突。
https://stackoverflow.com/questions/201705
复制相似问题