检查字符串

时间:2015-12-29 15:41:17

标签: python python-3.x hash

单词Fox生成以下sha1哈希:

dfcd3454bbea788a751a696c24d97009ca992d17

在python中,我只是尝试通过执行以下操作来获得相同的输出:

import hashlib

myhash = hashlib.sha1("Fox".encode('utf-8'))

myhash只生成以下字节对象:

b'\xdf\xcd4T\xbb\xeax\x8au\x1ail$\xd9p\t\xca\x99-\x17'

我已经尝试了binascii,但似乎没有一种方法可以产生上述输出。

如何从此处生成生成的ascii哈希?

1 个答案:

答案 0 :(得分:7)

您有摘要的十六进制表示。您可以使用hash.hexdigest() method在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'

您还可以使用binascii.hexlify() function

将二进制摘要转换为十六进制
>>> import binascii
>>> binascii.hexlify(myhash.digest())
b'dfcd3454bbea788a751a696c24d97009ca992d17'
>>> binascii.hexlify(myhash.digest()).decode('ascii')
'dfcd3454bbea788a751a696c24d97009ca992d17'

然而,这只是一种更加冗长的方式来实现同样的目标。