python – 防止冲突而不是攻击的哈希函数. (生成随机UUID大小的结果空间)

使用SHA1散列较大的字符串,以便它们可以用作数据库中的键.

尝试从原始字符串生成UUID大小的字符串,该字符串足够随机且足够大以防止冲突,但比原始字符串小得多.

不使用此安全相关的任何东西.

例:

# Take a very long string,hash it down to a smaller string behind the scenes and use
#     the hashed key as the data base primary key instead
def _get_database_key(very_long_key):
    return hashlib.sha1(very_long_key).digest()

SHA1是一个很好的算法用于此目的吗?或者还有其他更合适的东西吗?

最佳答案
Python有一个uuid library,基于RFC 4122.

使用SHA1的版本是UUIDv5,因此代码将是这样的:

import uuid

uuid.uuid5(uuid.NAMESPACE_OID,'your string here')

相关文章

在前一篇博客中我们介绍了加侧旋的乒乓球弧圈技术的模拟,本...
在近期conda的版本更新中,有可能会删除路径下的_sysconfigd...
本文主要展示了一些lambda表达式的使用示例,通过这些示例,...
本文通过对比Jax和Numpy计算Normalized Hamming Distance的过...
我们知道GPU加速在可并行化程度比较高的算法中,能够发挥出比...
Numpy这个库在Python编程中非常的常用,不仅在性能上补足了P...