如何通过BTC私钥获取BTC地址

申屠俊发
2023-12-01

还是直接贴代码:

​
DumpedPrivateKey dumpedPrivateKey = DumpedPrivateKey.fromBase58(MainNetParams.get(), privateKey);
        ECKey ecKey = dumpedPrivateKey.getKey();
        String address = ecKey.toAddress(MainNetParams.get()).toBase58();

解析:
 

BTC的主要方法都是通过BitcoinJ这个库来执行的,当前这个小方法也包含其中。
 

NetworkParameters params;  // 网络参数声明
params = TestNet3Params.get(); // 公共测试网络
params = RegTestParams.get(); // 私有测试网络
params = MainNetParams.get(); // 生产网络

大家都知道创建BTC wallet 地址的时候是通过私钥,进行base58产生的地址。

所以我们必须先反解析base58.

通过返回的类调用里面的getKey(); 返回椭圆曲线封装的参数,其中有一个toAddress()的方法,这个方法需要当前网络参数声明,

返回Address类,该类中集成的父类中有个toBase58()的方法来获取最终的结果。
其实就是把最后的结果再去base58()。得到BTC的地址。

PS: BTC的相关东西不熟,但是bitcoinJ是个好东西,大家没事可以多学学。
写的不清楚的,见谅。

 类似资料: