我正面临有关从address
生成private key
的问题。
我从electrum
以及bitcoin core
获得了主私钥
这是从
xprv9s21xxxxxxxxxxxxxxxxxxxxxxxxxxxx
比特币中的:
ECKey key=ECKey.fromPrivate(prv); // it accepts bytes[] or BigInteger
如何将9s21xxxxxxxxxxxxxxxxx
转换为bytes[] or BigInteger
。
尝试:
String prvkey=9s21xxxxxxxxxxxxxxxxxxxxx
BigInteger bytes=new BigInteger(priv,16);
由于数字格式无法转换,因此会引发异常。
尝试2:
byte[] bytes=prvkey.getBytes(StandardCharsets.UTF_16);
它会从ECKey
生成有效地址,并通过address
向electrum
发送交易。但钱包没有收到钱。不知道钱在哪里消失了。
如何将主私钥转换为BigInteger or bytes[]
PS:
我是cryptocurrency
答案 0 :(得分:1)
将字符串私钥转换为bytes[]
:
ECKey key = ECKey.fromPrivate(prv.getBytes());
或者,将字符串私钥转换为BigInteger
:
BigInteger privKey = Base58.decodeToBigInteger(prv);
ECKey key = ECKey.fromPrivate(privKey);