草庐IT

postgresql - golang中改进的FNV-1 hash算法

原生库有FNV-1哈希算法https://golang.org/pkg/hash/fnv/返回uint64值(范围:0到18446744073709551615)。我需要将此值存储在PostgreSQLbigserial中,但它的范围是1到9223372036854775807。可以将哈希大小更改为例如。56?http://www.isthe.com/chongo/tech/comp/fnv/index.html#xor-fold有人可以帮助更改native算法以生成56位哈希吗?https://golang.org/src/hash/fnv/fnv.go更新我自己是用这个文档做的吗h

php - FNV 'flavors' 和 PHP 实现

我正在尝试整合FNV基于PHP的项目的哈希算法,作为为各种数据(例如URL、关键字)生成哈希的要求的一部分。我看到了这个implementation内文博亚诺夫。他提到由于PHP的算术限制,他被迫使用位移和加法而不是乘法。他的实现是否正确?我在计算机科学领域的知识有限,因此无法自行验证。我的另一个问题是关于FNV的不同“口味”。我看到它提供了32位、64位和128位变体,但是使用上面的实现我总是得到8个字符的十六进制哈希值(我使用dechex()将整数结果转换为十六进制)。鉴于输入“Loremipsumdolorsitamet,consecteturadipiscingelit.Pro