【发布时间】:2023-04-05 07:48:02
【问题描述】:
我有数百万个字符串,每个都有几千字节。我正在寻找一种快速、无冲突的 Java 散列函数。有谁能够帮我?是否有任何这样的哈希函数没有考虑到密码学,只是性能?有什么建议吗?
【问题讨论】:
-
不存在字符串的无冲突散列函数。您可以构建一个
Map<String, Integer>为每个字符串分配一个唯一值,但这不是散列函数。 -
我说的是在我的情况下不会产生冲突的散列函数,而不是不能产生冲突的散列函数。
-
是的,使用映射为每个字符串分配唯一值将为一组特定的字符串生成一个无冲突值。
-
好吧,那就这样吧,但是无论你使用哪种加密算法,它都不能保证一个无冲突的哈希。
-
如果您不需要加密散列的任何安全属性,那么任何 128 位或更多位的 non-cryptographic hashes 都应该足够并且快得多。 this 就是一个例子。
标签: java hash hash-function