Fix Python – How to hash a string into 8 digits?

Question

Asked By – Bob Fang

Is there anyway that I can hash a random string into a 8 digit number without implementing any algorithms myself?

Now we will see solution for issue: How to hash a string into 8 digits?


Answer

Yes, you can use the built-in hashlib module or the built-in hash function. Then, chop-off the last eight digits using modulo operations or string slicing operations on the integer form of the hash:

>>> 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

This question is answered By – Raymond Hettinger

This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0