hashlib.sha256产生意外结果

时间:2017-01-09 19:19:45

标签: python cryptography

我试图在Python中实现以下步骤:

Compressed public key:
02F840A04114081690223B7069071A70D6DABB891763B638CC20C7EC3BD58E6C86

SHA-256 of public key yields:
cb05d0fd5e76ba8ea88323fc5d3eefd09a78d8e2a5fd4955307b549657a31330

这一步非常简单,所以我编写了这段代码,看它是否按计划运行:

from binascii import hexlify
from hashlib import sha256
master_key = hexlify("02F840A04114081690223B7069071A70D6DABB891763B638CC20C7EC3BD58E6C86")
print(sha256(master_key).hexdigest())

但是,这并没有产生预期的结果。相反,它给了我:

cee4b5650664b11623675d0371ab9dd1e3478758a95b189e54ecf8b7bdd7ba2d

使用不带十六进制编码的字符串首先也不会产生正确的结果。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您想要unhexlify十六进制表示:

from binascii import unhexlify
from hashlib import sha256
master_key = unhexlify("02F840A04114081690223B7069071A70D6DABB891763B638CC20C7EC3BD58E6C86")
print(sha256(master_key).hexdigest())
# cb05d0fd5e76ba8ea88323fc5d3eefd09a78d8e2a5fd4955307b549657a31330