还是直接贴代码:
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是个好东西,大家没事可以多学学。
写的不清楚的,见谅。