-1

我有一个bitcoin66 个字符长的私钥,包括一个0x前缀,我需要将它转换为ECKey. 我试过这个:

String private = "0x..."; // 66 characters total
DumpedPrivateKey dpk = DumpedPrivateKey.fromBase58(null, wif);
ECKey key = dpk.getKey();

它抛出

org.bitcoinj.core.AddressFormatException: Illegal character 0 at position 0

如果我删除字符串中的0x任何其他错误,则会引发相同的错误。0private

66 个字符的长密钥是来自我们系统之外的东西,所以我无法控制。我在这里想念什么?如何转换它以便我可以使用ECKey来签署交易?

4

1 回答 1

-1

从十六进制(字节数组)导入它可以解决问题。请参阅下面的代码

ECKey key = ECKey.fromPrivate(privateKeyByteArrayHere);

不要在字节数组(byte[])中包含前面的 80 和后面的 01/校验和。

于 2021-06-19T14:02:58.427 回答