在Python中计算“十六进制字符串”的fnv1a32哈希值

时间:2019-04-02 19:46:17

标签: python hash fnv

我想编写一个函数来计算“十六进制字符串”的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

0 个答案:

没有答案