用于检查重复 URL 的哈希算法是什么?

发布于 2024-12-04 14:59:58 字数 713 浏览 1 评论 0原文

我将 URL 保存在数据库中,当我插入新 URL 时,我想检查该 url 是否已存在于数据库中。

一种常见的做法(如果我没记错的话)是使用 md5 或 sha-1 等对 url 进行哈希处理...并在插入新字段之前检查数据库中的该字段是否有重复项。

我知道 md5 可以产生冲突,还有 sha-1...

你对我有什么建议?我的需求是:

  • 数据库大小:数据库中最终有 10 到 20 百万条记录

  • < p>性能/速度:哈希值较小,因此数据库不会对重复项进行繁重的负载检查(当然该字段上会有索引)

  • 容差:我不在乎是否每 100,000 条记录发生 1 次冲突。我的需求更多的是性能(小哈希)而不是 0% 冲突(大哈希)。

  • 通过格式错误的 URL 进行攻击故意产生冲突的几率:极低

  • < p>成功攻击后可能造成的最大伤害:极低

问题:

  • 您认为 md5 足够吗(有更好的建议)?

  • 也许 md5 对我来说甚至是杀伤力,我真的可以通过使用更简单的东西来获得性能优势?

提前谢谢你们了!

I am saving URL's in a database, and when i insert a new one, i want to check if that url exists already in the database.

A common practice (if i'm not mistaken) is to hash the urls using md5 or sha-1 etc... and checking that field in database for duplicates prior inserting a new one.

I know md5 can produce collisions, also sha-1...

What do you suggest for me? My needs are:

  • DB Size: Eventually 10 to 20 Millions of records on database

  • Performance/Speed: Small hash size so database will not have heavy load checking for duplicates (there is going to be index of course on that field)

  • Tolerance: I don't care if i get 1 collision on every 100,000 records. My needs are more towards performance (small hash) rather than 0% collisions (big hash).

  • Chance of attack by malformed URLs to produce collisions on purpose: Extremely Low

  • Maximum damage possible in case of such a successful attack: Extremely Low

Questions:

  • Do you believe md5 is enough (Something better to suggest)?

  • Maybe md5 is even overkill for me and i could seriously can get performance benefits by using something simpler?

Thank you in advance guys!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

小清晰的声音 2024-12-11 14:59:58

使用 md5 或一些类似的相对便宜的哈希值(也许Quark?)以及在极少数情况下进行碰撞检查怎么样?匹配条目的完整 URL?这样,大多数时候您只需进行廉价的哈希检查,但实际上您永远不会插入重复的 URL。

What about using md5 or some similar relatively inexpensive hash (maybe Quark?), and in the rare case of collision checking the full URL for the matching entries? This way the majority of the time you just have the inexpensive hash check but you also never actually insert a duplicate URL.

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