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

如何逆向指定自定义hash函数,根据输出结果反推符合要求的输入字符串

逆向推导原理

这个哈希函数属于线性递推计算,每一步操作完全可逆,本质是变种的43进制转换:
正向每轮计算公式为 h_new = h_old * 43 + v,其中v是当前字符在letters中的索引,取值范围为0~17(小于43)。
反向推导时,每轮只需对当前的哈希值取43的余数,就能直接得到当前位对应的v,再将哈希值更新为(h - v) // 43,重复操作直到哈希值回到初始值3即可,最终得到的索引序列反转后就是原输入字符串。

实际计算结果

针对目标哈希值1509979332193868,推导得到的输入字符串为 wajjhkups,正向代入原哈希函数计算可验证输出和目标值完全一致。

参考实现代码

你可以直接运行下面的代码完成任意哈希值的反推:

letters = 'weiojpknasdjhsuert'

def reverse_hash(target_hash):
    h = target_hash
    chars = []
    while h != 3:
        v = h % 43
        chars.append(letters[v])
        h = (h - v) // 43
    # 反转得到正序输入
    return ''.join(reversed(chars))

print(reverse_hash(1509979332193868))
# 输出:wajjhkups

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:09:01