gpt4 book ai didi

python - 字符串到小的固定长度字符串的廉价映射

转载 作者:太空宇宙 更新时间:2023-11-04 07:02:43 26 4
gpt4 key购买 nike

只是出于调试 的目的,我想将一个大字符串(一个 session_id,很难形象化)映射到一个,比方说,6 个字符的“散列”。这个散列不需要以任何方式保证安全,只是计算成本低,并且长度固定且减少(md5 太长)。输入字符串可以有任意长度。

您将如何在 Python 中实现这个“cheap_hash”以便计算成本不高?它应该生成如下内容:

def compute_cheap_hash(txt, length=6):
# do some computation
return cheap_hash

print compute_cheap_hash("SDFSGSADSADFSasdfgsadfSDASAFSAGAsaDSFSA2345435adfdasgsaed")
aBxr5u

最佳答案

我不记得 MD5 是否是均匀分布的,但它被设计为即使输入中的最小差异也会发生很大变化。

不要相信我的数学,但我猜 MD5 十六进制摘要的前 6 位的碰撞几率是 16^6 分之一,大约是 1700 万分之一。

所以你可以cheap_hash = lambda input: hashlib.md5(input).hexdigest()[:6]

之后你可以在任何地方使用hash = cheap_hash(any_input)

PS:任何算法都可以; MD5 的计算成本略低,但 hashlib.sha256 也是一种流行的选择。

关于python - 字符串到小的固定长度字符串的廉价映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14023350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com