我想编写一个函数来计算“十六进制字符串”的fnv1a32哈希。
例如 输入:ec8e76e0 输出:5F593BF1
我正在尝试下面的代码,但是它用于普通字符串,并且返回值是int类型。我正在寻找要处理十六进制字符串并返回输出为十六进制类型的函数。
def fnv32a(str):
hval = 0x811c9dc5
fnv_32_prime = 0x01000193
uint32_max = 0x100000000
for s in str:
hval = hval ^ ord(s)
hval = (hval * fnv_32_prime) % uint32_max
return hval