Может кто-нибудь объяснить, как использовать следующий конструктор (перечисленный здесь ):
ECKey(BigInteger priv, org.spongycastle.math.ec.ECPoint pub)
Скажем, мой закрытый ключ: priv = "L4...5"
.
Как мне получить его большое целочисленное представление (другими словами, и если я правильно понял, есть ли функция для перехода от check58
к biginteger
?), и
как насчет второго параметра?
Спасибо
Если все, что вам нужно, это получить ECKey
объект для этого закрытого ключа, то у Bitcoinj есть DumpedPrivateKey
класс как раз для такого случая.
import org.bitcoinj.core.ECKey;
import org.bitcoinj.core.DumpedPrivateKey;
import org.bitcoinj.params.MainNetParams;
public class Example {
public static void main(String[] args) {
String priv = "L4...5";
ECKey key = DumpedPrivateKey.fromBase58(MainNetParams.get(), priv).getKey();
}
}
Если вы хотите ECKey
явно использовать конструктор, вы сможете получить нужный код отсюда:
Что касается перечисленного вами конструктора, это защищенный конструктор, поэтому, вероятно, вы не захотите его использовать. В нем перечислены параметры закрытого ключа и открытого ключа. Закрытый ключ может быть нулевым, если ECKey
экземпляр будет использоваться только для проверки подписей, а не для их фактического создания. Открытый ключ не должен быть нулевым, и он экономит время, поскольку не требует повторного вычисления открытого ключа, что является операцией с интенсивным использованием ЦП.
Обратите внимание, что большинство public ECKey
конструкторов устарели. Сейчас предпочтительным способом создания ECKey
объектов является использование статических фабричных методов.
Вы можете вызвать общедоступный статический метод класса ECKey, fromPrivate(byte[] privKeyBytes, логическое сжатие). По нему вычисляется публичный ключ (это медленно), либо сжатый, либо нет. Например.,
String privateKey = "Your Private Key";
byte[] b = privateKey.getBytes();
ECKey key = ECKey.fromPrivate(b, true);
или
BigInteger privKey = Base58.decodeToBigInteger(privateKey );
key = ECKey.fromPrivate(privKey);
https://bitcoinj.github.io/javadoc/0.13/org/bitcoinj/core/ECKey.html
ультра.глубокий