Web3j
如何從 Web3j 中的私鑰獲取公鑰
我正在通過 web3j 開發 Dapp,並嘗試將私鑰轉換為公鑰。我發現這個問題這個問題提供了一種在 ECKey 類中將私鑰轉換為公鑰的方法,但我還需要添加 Ethereumj 核心作為依賴項。
我想知道 web3j 中是否有一種方法而不是 ethereumj 將私鑰轉換為公鑰。
如果沒有,他們為什麼不將此邏輯作為函式添加到 web3j 中?
是的,您可以使用以下程式碼進行操作
import org.web3j.crypto.Credentials; import org.web3j.crypto.ECKeyPair; public static String getPublicKeyInHex(String privateKeyInHex) { BigInteger privateKeyInBT = new BigInteger(privateKeyInHex, 16); ECKeyPair aPair = ECKeyPair.create(privateKeyInBT); BigInteger publicKeyInBT = aPair.getPublicKey(); String sPublickeyInHex = publicKeyInBT.toString(16); return sPublickeyInHex; }
我在這裡發布了我自己的答案,以防其他人有問題。Web3j 提供了一個 ECKeyPair 作為工具來處理密鑰和地址轉換。請看下面的程式碼:
String privateKey = "{your private key}"; Credentials cs = Credentials.create(privateKey); String privateKey = cs.getEcKeyPair().getPrivateKey().toString(16); String publicKey = cs.getEcKeyPair().getPublicKey().toString(16); String addr = cs.getAddress(); System.out.println("Private key: " + privateKey); System.out.println("Public key: " + publicKey); System.out.println("Address: " + addr);