128位整数哈希函数

2024-10-02 04:24:48 发布

您现在位置:Python中文网/ 问答频道 /正文

正在查找值在mysqlbigint unsigned数据类型(0 <= n <= 18446744073709551615)范围内的字符串到整数哈希函数。将md5/sha1转换为以16为基数的整数不符合此要求。在


Tags: 函数字符串整数sha1md5数据类型基数unsigned
1条回答
网友
1楼 · 发布于 2024-10-02 04:24:48

Java使用的rolling hash应该对您有用

来自java.lang.String

public int hashCode() {
    int h = hash;
    if (h == 0 && count > 0) {
        int off = offset;
        char val[] = value;
        int len = count;

        for (int i = 0; i < len; i++) {
            h = 31*h + val[off++];
        }
        hash = h;
    }
    return h;
}

其思想是将哈希计算为:

^{pr2}$

为了处理溢出,您可以添加一个步骤,在该步骤中,根据18446744073709551615检查哈希,如果它更大,则取哈希的mod和{}。在

相关问题 更多 >

    热门问题