146

自分でアルゴリズムを実装せずに、ランダムな文字列を8桁の数字にハッシュできる方法はありますか?

4

4 に答える 4

203

はい、組み込みhashlibモジュールまたは組み込みhash関数を使用できます。次に、ハッシュの整数形式でモジュロ演算または文字列スライス演算を使用して、最後の 8 桁を切り捨てます。

>>> s = 'she sells sea shells by the sea shore'

>>> # Use hashlib
>>> import hashlib
>>> int(hashlib.sha1(s.encode("utf-8")).hexdigest(), 16) % (10 ** 8)
58097614L

>>> # Use hash()
>>> abs(hash(s)) % (10 ** 8)
82148974
于 2013-04-15T06:17:59.020 に答える