【问题标题】:Generating md5 and checking for collision生成 md5 并检查碰撞
【发布时间】:2012-09-21 09:21:41
【问题描述】:

我需要为大约 4000 万个带盐的字符串(大约 20 个符号)生成 md5 哈希,

md5(字符串+盐)

检查冲突,然后将它们保存到 bd。 然后当盐改变时,我需要用新的盐生成新的哈希,检查冲突并检查与旧哈希的冲突。

这里有一些库可以帮助我吗? 也许布隆过滤器可以提供帮助?我可以使用 HashMap 来检查冲突吗?

【问题讨论】:

  • 为什么所有值都需要一种盐?

标签: java hash md5 bloom-filter


【解决方案1】:

我建议将生成的 md5 哈希值插入数据库,并检查循环的每次迭代。您可以在“哈希值”列中创建索引以进行更快的搜索。 表会很大,你也可以把hash分成几个表(甚至数据库),用不同的首字符,或者首组字符(hashes_aa、hashes_ab等)。

您是否经常更换盐以使该解决方案对您不起作用?

编辑:碰撞将非常非常罕见,您可以跳过检查吗?

【讨论】:

  • 感谢您的回答!盐的变化是非常罕见的。问题是数据库方案已经创建,我无法更改它。它基本上是一张以 value 和 hash 作为列的 table,它在 value 列上有索引,在 hash 列上有索引。我怎样才能检查每次迭代?我可以使用分组依据吗?
  • 如果你有一列“value”和另一列“hash”,为什么不能每次迭代都简单地“select count(*) from MyHashTable where hash='new_generated_hash'”?跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-26
  • 1970-01-01
  • 2022-10-20
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
相关资源
最近更新 更多