7. "in":[
8. {"prev_out":
9. {"hash":"2007ae...",
10. "n":0},
11. "scriptSig":"304502... 042b2d..."}],
第 11 行包含汇款人的签名,
304502...
后面跟一个空格,然后是对应的公钥
04b2d.... Again, these are both in hexadecimal.
我可以将十六进制公钥解码为原始比特币地址还是不可能? 谢谢:)
最佳答案
是的,这是可能的,这是执行此操作的函数:
import hashlib
from base58 import b58encode
from binascii import unhexlify
pub = 'public key string you wish to decode'
def addr_decode(pub, testnet=True):
h3 = hashlib.sha256(unhexlify(pub))
h4 = hashlib.new('ripemd160', h3.digest())
result =(b'\x00' if not testnet else b'\x6f') + h4.digest()
h5 = hashlib.sha256(result)
h6 = hashlib.sha256(h5.digest())
result += h6.digest()[:4]
return b58encode(result)
在上面的形式中,它是为测试网配置的,要在主网上使用,只需将 testnet=
更改为 False
或将其从函数参数元组中删除。
享受吧:)
*修改自yorro's addgen存储库。
关于transactions - 是否可以从原始交易中找到的 'scriptSig' 中解码公钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23728328/