hashlib.sha1
accepts a string as a parameter.
>>> import hashlib
>>> hashlib.sha1('asdf')
<sha1 HASH object @ 0000000002B97DF0>
But you're passing a int object. (The return value of the random.randint
is int
object as the name suggest)
>>> hashlib.sha1(1234)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: must be string or buffer, not int
You can use os.urandom
to generate random string:
>>> import os
>>> hashlib.sha1(os.urandom(10)) # `os.urandom(10)` generate 10-bytes random string.
<sha1 HASH object @ 0000000002B97F30>
>>> hashlib.sha1(os.urandom(10)).digest()
'\x0c.y\x08\x13\xf0\x16.\xea\x05\x03\x07{6H\xa0U\xfe\xdfT'
>>> hashlib.sha1(os.urandom(10)).hexdigest()
'6e33d9cfdbd7ffcf062ee502eaa25893f618fcff'