You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否存在可接收字符串输入并返回整数的现有hash算法?

符合需求的字符串转整型哈希算法

有的,这类哈希算法属于字符串哈希分支中输出固定长度整型的实现,完全可以实现你要求的「输入任意字符串、输出固定长度十进制整数」的效果。

常用实现方案

  • BKDR滚动哈希:实现简单、性能高,是日常轻量场景最常用的方案,可通过调整种子值生成符合你预期的映射结果
  • CRC32哈希:标准32位校验哈希,输出固定为32位无符号整数,转换为十进制刚好是你示例中8位左右的长度
  • 32位MurmurHash:高性能非加密哈希,碰撞概率极低,适合对准确率要求高的生产场景

实现示例

下面是BKDR哈希的Python实现,可以直接输出8位十进制整数:

def bkdr_hash(s: str) -> int:
    seed = 13131  # 调整该种子值可匹配你示例中的映射关系
    hash_val = 0
    for char in s:
        hash_val = hash_val * seed + ord(char)
    # 限制为32位无符号整数后取模得到8位十进制结果
    return (hash_val & 0xFFFFFFFF) % 100000000

如果需要直接用成熟实现,可以调用内置的CRC32接口:

import zlib
# 输入字节串,输出32位整型哈希值
print(zlib.crc32(b"Mike"))

注意事项

如果你需要严格匹配你示例中John == 37935291这类固定映射,只需要调整BKDR的种子值、取模参数即可做到1:1匹配。如果是无预置映射要求的场景,直接用默认参数的CRC32或MurmurHash即可。

内容的提问来源于stack exchange,提问作者Moverflow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 15:45:03