Mongo Objectid碰撞可能性VS MD5

时间:2014-05-24 18:29:01

标签: mongodb md5 collision objectid

Mongo objectid和MD5哈希函数,哪一个更容易发生碰撞,现在我正在构建一个网站,并寻找一种方法来索引我的产品。

提前致谢。

2 个答案:

答案 0 :(得分:2)

MongoDB的ObjectId不太可能发生冲突。它包含一个计数器,一个随机数,进程ID等.MD5哈希值取决于输入值。如果传递两个具有相同值的输入,则哈希将是相同的。

我应该更了解您如何散列产品。如果您确定您的产品价值不一样,那么您可以同时使用它们。但我会使用ObjectId,因为您根本不需要担心产品值和散列。 ObjectId的大小也小于MD5哈希的大小,这更适合索引。

答案 1 :(得分:0)

如果您的产品型号与现实世界的产品有某种关系,那么现有的方法可以将它们编入索引 - 选择商品编号或EAN(IAN)。它们可以是mysql的自然自动增量ID的补充。 UUID有专业(主要用于分布式数据库)和缺点 - 阅读https://tomharrisonjr.com/uuid-or-guid-as-primary-keys-be-careful-7b2aa3dcb439