我有一组 ASCII 字符串,假设它们是文件路径。它们可以很短也可以很长。
我正在寻找一种可以计算此类字符串的哈希值的算法,该哈希值也是一个字符串,但长度固定,例如 youtube 视频 ID:
https://www.youtube.com/watch?v=-F-3E8pyjFo
^^^^^^^^^^^
MD5 似乎是我所需要的,但是拥有一个短的哈希字符串对我来说至关重要。
是否有可以执行此操作的 shell 命令或 python 库?
原文由 Anthony 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想这个问题是题外话,因为基于意见,但至少给你一个提示,我知道 FNV 哈希,因为 模拟人生 3 使用它来根据不同内容包之间的名称查找资源。他们使用 64 位版本,所以我想这足以避免在相对较大的一组参考字符串中发生冲突。 哈希很容易实现,如果没有模块满足你( 例如 pyfasthash 有它的实现)。
要从中获取一个短字符串,我建议您使用 base64 编码。例如,这是 base64 编码的 64 位散列的大小:
nsTYVQUag88=
(你可以删除或填充=
)。_编辑_:我终于遇到了和你一样的问题,所以我实现了上面的想法: https ://gist.github.com/Cilyan/9424144