【发布时间】:2013-07-20 21:40:02
【问题描述】:
寻找字符串到整数散列函数,其值在 mysql bigint unsigned 数据类型 (0 <= n <= 18446744073709551615) 的范围内。将 md5/sha1 转换为以 16 为底的整数不符合此要求。
【问题讨论】:
-
你的哈希函数需要什么样的属性?它应该是加密的吗?它需要快速吗?我希望它需要在程序的不同执行中保持一致。
-
@user2357112 没有加密。该值将用作字符串的整数键值。低碰撞要求是必须的。
-
本质上你想要一个 64 位的散列。维基百科有一些被列为 64 位加密和非加密的,包括 RIPEMD-64、Siphash、elf64 等。为什么哈希大小如此有限?
-
@ChrisJ 谢谢。哈希大小受 mysql 列数据类型的限制,不允许更改。