如何通过ETH私钥获取对应的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:

 


            org.web3j
            web3j-spring-boot-starter
            1.6.0
        

 

你可能感兴趣的:(如何通过ETH私钥获取对应的ETH地址)