python - Sha256 返回不正确的哈希值?

标签 python linux bitcoin

我正在尝试散列比特币私钥以获得校验和,python 中的两个不同库(hashlib + pycrypto)返回相同的错误结果(仅经过 1 个散列)。

在 linux 终端中,我得到了正确的散列结果:

echo -n 8018ac3e7343f016890c510e93f935261169d9e3f565436429830faf0934f4f8e4 | xxd -r -p | sha256sum -b
result: cd358f378809b3043ded3782d849fbad70f92a2dadefafd985d9aef443752e57

但是,hashlib、pycrypto 和在线 SHA2 哈希工具返回值:

5d6dce0f36a50abe51ee435ac11dac05f7879c1cd1ca5bc7aae706e5a3776d4a

我不确定他们为什么返回不同的值。

这是从它们生成的两个 WIF key ,第一个使用命令行函数,第二个使用 python;第二个无效(不被钱包软件接受)。

5J19pGYtJzuS7VoAQjxDjUGgWXSNqj18GWSWvFVqJzQqGtxZf2V
5J19pGYtJzuS7VoAQjxDjUGgWXSNqj18GWSWvFVqJzQqGvDc8hm

最佳答案

import hashlib

print(
    hashlib.sha256("8018ac3e7343f016890c510e93f935261169d9e3f565436429830faf0934f4f8e4").hexdigest()
)

print(
    hashlib.sha256("8018ac3e7343f016890c510e93f935261169d9e3f565436429830faf0934f4f8e4".decode("hex")).hexdigest()
)

注意区别:

第一个代码对十六进制字符串进行哈希处理。

第二个哈希由十六进制解码返回的字节字符串。

关于python - Sha256 返回不正确的哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37758167/

相关文章:

linux - 如何在while循环中并行处理多行文件?

ruby - 加密货币地址生成

python - 如何动态查找所选元素最近的特定父元素?

python - 带有 python 加密的 InvalidSignature

linux - Linux 中的线程亲和性

linux - 检查 bash 脚本上的特定端口是否有字符串数据

node.js - Coinbase API BTC 账户丢失

c# - 多线程或 GPU 计算

python - python 中带有箭头的简单 2d 表面?

python - 在 YAML 中执行算术运算?