我试着按照这里的步骤 https://en.bitcoin.it/wiki/Bech32 以生成有效的bech32地址。我被困在了第一步:
具有压缩的公钥(0x02或0x03后跟32字节X坐标): 0279be667ef9dcbbac55a06295ce870b07029fcdb2dce28d959f2815b16f81798 对公钥执行SHA-256哈希: 0f715baf5d4c2ed29785cef29e562f73488c8a2b9dbc5700b361d54b9b0554
以下是我尝试过的一件事:
>>> import hashlib >>> m = hashlib.sha256() >>> m.update('0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798') >>> m.hexdigest() 'd13c888cfd35d6ab67dc3f67edcc401833e6ae4eec20b254b1981b187946ed91'
注:
看起来你在散列二进制的字符串表示,而不是二进制流本身。不确定在Python 2.7中实现这一点的最具Python风格的方法是什么,但您可以通过以下方式获得所需内容:
import hashlib str_of_key = '0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798' hashlib.new('sha256', str_of_key.decode('hex')).hexdigest()
供参考,有关问题 .decode('hex') : https://stackoverflow.com/a/5682984/1150918
.decode('hex')