如何通过eth私钥获取对应地址

废话不多说,直接贴代码:

String address = Keys.toChecksumAddress(Keys.getAddress(ECKeyPair.create(Numeric.toBigInt(privateKey))));

解析:

Numeric.toBigInt(privateKey);

将私钥先转换16进制的BigInt数。

ECKeyPair.create(BigInt bigint);

通过这个16进制数创建密钥对:

Keys.getAddress(ECKeyPair eckeyPair):

调用该方法,返回的参数其实已经是ETH地址,只是没有以0x开头,并且其中字母的大小写未区分,如果将此地址拼接上0x是可以在ETH浏览器中查找到该地址的。

最后,为了让它看起来是ETH地址,我们需要完善它。
Keys.toChecksumAddress(String address);

至此,上面方法的返回值就是一个完整的ETH地址。

我将倒入的包名发在下面,有需要的可以参考一下。

import org.web3j.crypto.ECKeyPair;
import org.web3j.crypto.Keys;
import org.web3j.utils.Numeric;

pom:

<dependency>
            <groupId>org.web3j</groupId>
            <artifactId>web3j-spring-boot-starter</artifactId>
            <version>1.6.0</version>
        </dependency>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值