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 に答える