这个字节文字的编码是什么



我正在使用BTCRecover python脚本尝试转储旧(MultiBit Classic(比特币钱包的内容。具体来说,我正在尝试恢复私钥。当我运行该脚本时,它将钱包标识为bitcoinj钱包格式,该格式显然是使用协议缓冲区序列化的。脚本失败,返回错误"bitcoinj wallet is not encrypted"。没关系,我怀疑它没有加密。。。我只想丢弃未加密的密钥。

我修改了Python脚本,在协议缓冲区被反序列化后打印出钱包,这是输出(省略了secret_bytes(:

Starting btcrecover 1.10.0-Cryptoguide on Python 3.9.5 64-bit, 21-bit unicodes, 64-bit ints
network_identifier: "org.bitcoin.production"
last_seen_block_hash: "00000000000001917+j246336317251q277zL;302n23722r.32sM240S306"
key {
type: ORIGINAL
secret_bytes: "XXXXXXXX"
public_key: "03nJK303356121625027213366X374262E)1022215[%224~07K5346*372315231222"
creation_timestamp: 1365727360000
}

文件似乎已正确反序列化,但last_seen_block_hashpublic_keysecret_bytes(无论如何,对我来说(没有意义。当我只打印public_key时,结果是:

b'x03nJKxc3xee1x8exa8x17x8bxf6Xxfcxb2E)x08x12x8d[%x94~x07K5xe6*xfaxcdx99x92'

我试过用许多不同的编码(utf-8、utf-16、utf-16-be、utf-32、latin1、ascii等(在字节文字上运行.decode()。在每种情况下,我都会收到错误或胡言乱语。

有人知道这是什么编码吗?或者这里还有更深层次的问题吗?

字符串使用latin1编码。

public_key字符串包含一个33字节的压缩公钥。将其转换为P2PKH地址会得到看起来更熟悉的19eBSVoQiDdJMuMAWToZB4qvGPii5s6Eie

last_seen_block_hash指的是块00000000000001390f2b6aa6decfa971bf7a4c3bc26e9f120d2e1a734da053c6,其从2013起处于高度230939

最新更新