5

使用 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 是用于此目的的好算法吗?或者还有什么更合适的吗?

4

1 回答 1

5

Python 有一个基于RFC 4122的uuid

使用 SHA1 的版本是 UUIDv5,所以代码是这样的:

import uuid

uuid.uuid5(uuid.NAMESPACE_OID, 'your string here')
于 2013-03-03T07:55:18.067 回答