transactions - 是否可以从原始交易中找到的 'scriptSig' 中解码公钥?

标签 transactions decode bitcoin

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/

相关文章:

django - Django 中的并发请求

MYSQL如何确保一个查询紧接着另一个查询运行

Python 字符串作为 Skimage imread 中的文件

javascript - Intl.NumberFormat() 不显示比特币 Ƀ 符号

c - 在 C 中使用 openssl 生成 pem

c# - 考虑线程和并发请求生成自动编号

MySQL 仅在条件为真时插入

python - 如何将字符串的二进制表示转换回 Python 中的原始字符串?

android - 在android中以原始解码形式显示latin1_swidish_ci字段的文本

financial - 比特币:交易验证的速度有多快?