生成bitcoin不同格式地址(1开头,3开头,bc1开头)的方式

前言:想了解他们的不同,可以看这边文章:以1, 3, bc1 开头的比特币地址的区别

我这里只说代码的实现

1.首先引入bitcoinj最新的库

compile 'org.bitcoinj:bitcoinj-core:0.15'

2.按照我之前的文章获取到btc私钥,链接:区块链开发之确定性算法生成BTC,ETH的私钥,公钥和地址_调用比特币或者其他区块链的密码库,生成私钥、公钥、地址,并观察地址的特征,对比-CSDN博客

3.生成不同格式地址代码如下:

       LegacyAddress address1 = LegacyAddress.fromKey(networkParameters, ecKey);
        System.out.println("1开头的地址:" + address1.toBase58());

        /*LegacyAddress address3 = LegacyAddress.fromScriptHash(networkParameters, ecKey.getPubKeyHash());
        System.out.println("3开头的地址:" + address3.toBase58());
这个方式不对,参考以下代码:
*/
参数threshold是你多签的时候,必须携带的一个数字,pubkeys是你所有参与多签的账号
Script script = ScriptBuilder.createP2SHOutputScript(int threshold, List<ECKey> pubkeys)
LegacyAddress address3 = LegacyAddress.fromScriptHash(network, ScriptPattern.extractHashFromP2SH(script))
System.out.println("3开头的地址:" + address3.toBase58());

        SegwitAddress segwitAddress = SegwitAddress.fromKey(networkParameters, ecKey);
        System.out.println("bc1开头的地址:" + segwitAddress.toBech32());

打印结果:

1开头的地址:1AMWsQHBgBCmMog3JxSkvAT5NcXQeGNxba
3开头的地址:3B3XnwmdE5X9SyNUS47MLnp1X8p8Afi8kx
bc1开头的地址:bc1qv6dxy7tmsyupwp46skcdg08c8693c6chrcu94h

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值