java - 使用 MD5 哈希作为索引

标签 java sql mongodb hash nosql

我正在编写一个包含一组特定数据的 MongoDB 集合,我想通过获取数据的 MD5(或者可能是 SHA256)哈希值并基于该哈希值进行比较来对该数据进行比较。

我想知道使用固定长度的十六进制数字字符串是否是正确的方法。是否有更好的数据类型可以使用,例如“blob”甚至 64 位长整数来保存值? (这可能需要我使用一个产生长整型的散列函数——除了用 Eclispe 覆盖 Java .hashCode() 函数之外,我不知道有什么函数?)

如果有更好的方法,请提供有关最佳实践的建议!

最佳答案

在 MongoDB 中存储 MD5 哈希

如果您决定存储 MD5 哈希值,则必须使用字符串或二进制(大小的一半)(请参阅 here )。

最佳哈希函数

这个问题很难回答,因为它很大程度上取决于您收集的数据类型。我个人认为 MD5 哈希是一个好方法,但这又取决于用例。如果您想自定义/优化您的哈希值,请使用此 post还有这个post可能会帮助你开始。它们涵盖了一些编写自定义哈希函数的简单方法。

关于java - 使用 MD5 哈希作为索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28161312/

相关文章:

sql - 为什么此 TSQL 打印失败?

mongodb - '$addToSet' 中的美元 ($) 前缀字段 '$addToSet' 对存储无效

c# - MongoDB C# 驱动程序 - 如何在 .NET 中对加入的集合强制执行投影?

java - List<?> 将整数转换为 List<Double>,为什么这可能?

sql - 删除重复的 SQL 连接结果

Java POI 最后的 CellStyle 覆盖以前的 CellStyles

php - 如何使用sql查询过滤每个月的总销售记录?

mysql - 寻求帮助了解 Mongo DB 数据组织

java - 返回 hi 出现的次数

java - 当 Java 中找到某个单词时,将长句拆分为短句