标签: java sql mongodb hash nosql
我正在编写一个包含一组特定数据的MongoDB集合,我希望通过获取数据的MD5(或SHA256)哈希值并对其进行比较来对该数据进行比较。
我想知道是否使用固定长度的十六进制数字字符串是正确的方法。是否有更好的数据类型可供使用,例如“blob”或甚至64位长整数来保存值? (这可能要求我使用产生longs的散列函数 - 除了可能用Eclispe重写Java .hashCode()函数之外我不知道其中一个?)
如果有更好的方法,那么最好的做法建议将在这里受到赞赏!
答案 0 :(得分:1)
在MongoDB中存储MD5哈希
如果您决定存储MD5哈希,则必须使用字符串或二进制(一半大小)(请参阅here)。
最佳哈希函数
这很难回答,因为它在很大程度上取决于您的收藏中的数据类型。我个人认为MD5哈希是一个好方法,但它又取决于用例。如果您想自定义/优化哈希值,可以开始使用此post和此post。它们涵盖了编写自定义哈希函数的一些简单方法。