Bitcoind

Python 中的 ScriptSig 轉換

  • November 25, 2018

我正在嘗試將腳本轉換為字節,以便更好地提取 R & S 值,但是當我嘗試轉換時,我缺少一些應該存在的元素,例如 x30。

scriptsig = '473044022015d8e1ba1d7fa0bd065f3da2d91d71d12890ff4d9a655161783504714c8b06a3022007d71d93d79039d73fc47ab9787128b7a6d7449e72688f0cf6dc175cfa90755d0121037ab79af7f21e54e03297fc9447952bfacedc57dcebd802eb19ba75636ad1fd5e'

import binascii
bytes1 = binascii.unhexlify(scriptsig) #doesn't work
bytes2 = scriptsig.decode('base64') #doesn't work

The output:
bytes1
'G0D\x02 \x15\xd8\xe1\xba\x1d\x7f\xa0\xbd\x06_=\xa2\xd9\x1dq\xd1(\x90\xffM\x9aeQax5\x04qL\x8b\x06\xa3\x02 \x07\xd7\x1d\x93\xd7\x909\xd7?\xc4z\xb9xq(\xb7\xa6\xd7D\x9erh\x8f\x0c\xf6\xdc\x17\\\xfa\x90u]\x01!\x03z\xb7\x9a\xf7\xf2\x1eT\xe02\x97\xfc\x94G\x95+\xfa\xce\xdcW\xdc\xeb\xd8\x02\xeb\x19\xbaucj\xd1\xfd^'

bytes2
'\xe3\xbd\xf4\xe3\x8d6\xdbMyw\xc7\xb5m\xad]\xed\xf6\xb4m\xdd:\xe5\xfd\xddkg}\xd5\xde\xf5w]\xbc\xf7G\xdf\xe1\xdfZ\xeb\x9eu\xeb^\xfc\xdf\x9d8\xef^\x1c\xf1\xbd:k}6\xdbM;w\xbd]\xf7w{\xf7M\xfdw\xbd\xdfs\x8e\xdao\xde\xfc\xef]\xbco\xb6\xbaw\xbe8\xf5\xee\xf6\xeb\xcf\x1f\xd1\xc7\xfau\xcd{\xe5\xc7\xda\xf7N\xf9\xe5\xdd5\xdb]7\xed\xa6\xfb\xf5\xa7\xfb\x7fm^\xe7\x87\xb4\xdfo{}\xcfx\xe3\xbfy\xd9\xb7\xdaq\xe7\\\xe7\xb7\\y\xb7|\xd3g\x9b\xd7\xd6\xda\xef\x9e\xb7\xe9\xa7u}\xde^'

一旦我得到正確的格式,我將使用 asn1decoder 解析 x30,然後提取 R 和 S

0x30 在 ascii 中是 ‘0’ 嗎(你的 bytes1 中的第二個字元)

>>> b'\x30'
b'0'

您還想從 scriptSig 中提取簽名,然後再將其傳遞給解碼器,現在它包含簽名和公鑰。

引用自:https://bitcoin.stackexchange.com/questions/81355