hax*_*ode 2 python hash python-3.x
该单词Fox产生以下sha1哈希:
dfcd3454bbea788a751a696c24d97009ca992d17
在python中,我只是通过执行以下操作来尝试获得相同的输出:
import hashlib
myhash = hashlib.sha1("Fox".encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
myhash 只生成以下字节对象:
b'\xdf\xcd4T\xbb\xeax\x8au\x1ail$\xd9p\t\xca\x99-\x17'
我试过binascii,似乎没有任何方法能够产生上述输出.
如何从这里生成生成的ascii哈希?
您有一个摘要的十六进制表示.您可以使用该hash.hexdigest()方法在Python中生成相同的内容:
>>> import hashlib
>>> myhash = hashlib.sha1("Fox".encode('utf-8'))
>>> myhash.digest()
b'\xdf\xcd4T\xbb\xeax\x8au\x1ail$\xd9p\t\xca\x99-\x17'
>>> myhash.hexdigest()
'dfcd3454bbea788a751a696c24d97009ca992d17'
Run Code Online (Sandbox Code Playgroud)
您还可以使用以下binascii.hexlify()函数将二进制摘要转换为十六进制:
>>> import binascii
>>> binascii.hexlify(myhash.digest())
b'dfcd3454bbea788a751a696c24d97009ca992d17'
>>> binascii.hexlify(myhash.digest()).decode('ascii')
'dfcd3454bbea788a751a696c24d97009ca992d17'
Run Code Online (Sandbox Code Playgroud)
然而,这只是实现同样事情的更冗长的方式.