我正在尝试按照here所示的步骤创建一个比特币地址。但是,我得到的散列与步骤2中显示的散列不同。
在以下位置计算SHA256哈希值:
0250863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352
给我输出:
a9ce83de3a0ff3516b7c50cdd787e9f69f152f227d93c9512774231e7132e925
问题是根据Bitcoin Wiki的,我应该获得以下哈希值:
0b7c28c9b7290c98d7438e70b3d3f7c848fbd7d1dc194ff83f4f7cc9b1378e98
有人可以解释为什么我没有得到与维基相同的哈希值吗?
答案 0 :(得分:1)
您将0250863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352
视为ascii字符串,而应将其视为32字节的十六进制表示形式。
如果将其用作字符串,则会得到:
echo -n "0250863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352" | openssl sha256
(stdin)= a9ce83de3a0ff3516b7c50cdd787e9f69f152f227d93c9512774231e7132e925
如果将其视为字节,则会得到正确的结果:
echo -n "0250863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352" | xxd -p -r | openssl sha256
(stdin)= 0b7c28c9b7290c98d7438e70b3d3f7c848fbd7d1dc194ff83f4f7cc9b1378e98