本頁面使用機器翻譯自英語,可能包含錯誤或不清楚的語言。如需最準確的信息,請參閱英文原文。由於更新頻繁,部分內容可能與英文原文有出入。請加入我們在 Crowdin 上的努力,幫助我們改進本頁面的翻譯。 (Crowdin translation page, Contributing guide)
V3 keystore
本例演示如何加密和解密 keystore V3。
從 Web3j 和 kaia 庫(web3j-ext
)中導入必要的類。
定義密鑰存儲密碼,該密碼用於解密密鑰存儲
從 json 文件讀取密鑰存儲,例如,我們有一個不同賬戶的列表:"RoleBased_V4.json ", "Multi_V4.json " 和 "Public_V4.json "
使用密碼解密密鑰存儲。
解密後,您可以訪問公鑰和私鑰。
keystoreV3.java
package org.web3j.example.utils;import java.io.InputStream;import java.io.BufferedReader;import java.io.InputStreamReader;import java.nio.charset.StandardCharsets;import java.util.stream.Collectors;import org.web3j.crypto.KaiaWelletUtils;import org.web3j.crypto.KaiaCredentials;import java.io.IOException;import org.web3j.tx.response.PollingTransactionReceiptProcessor;import org.web3j.tx.response.TransactionReceiptProcessor;import org.web3j.example.keySample;public class DecryptKeystoreV3Example implements keySample { public static void run() throws Exception { String password = "Ilovekaia"; String[] keyFiles = { "/Legacy_V3.json", "/Public_V3.json" }; for (String keyFile : keyFiles) { String json = getResourceJSON(keyFile); // Convert keystore to list of KaiaCredentials KaiaCredentials credentials = KaiaWelletUtils.loadJsonKaiaCredentials(password, json); System.out.println("Load KaiaCredentials from keystore file: " + keyFile); String address = credentials.getAddress(); String privateKey = credentials.getEcKeyPair().getPrivateKey().toString(16); System.out.println("\tKaiaCredential : " + "Address: " + address + ", Private Key: 0x" + privateKey); } } static String getResourceJSON(String resourcePath) throws IOException { InputStream inputStream = DecryptKeystoreV3Example.class.getResourceAsStream(resourcePath); if (inputStream == null) { throw new IllegalArgumentException("resource not found: " + resourcePath); } try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8))) { // String value for keystore JSON return reader.lines().collect(Collectors.joining(System.lineSeparator())); } catch (IOException e) { throw e; } }}
output
❯ java keystoreV3.javaLoad KaiaCredentials from keystore file: /Legacy_V3.json KaiaCredential : Address: 0xa2a8854b1802d8cd5de631e690817c253d6a9153, Private Key: 0xe4ca6d38096ad99324de0dde108587e5d7c600165ae4cd6c2462c597458c2b8Load KaiaCredentials from keystore file: /Public_V3.json KaiaCredential : Address: 0xa2a8854b1802d8cd5de631e690817c253d6a9153, Private Key: 0xe4ca6d38096ad99324de0dde108587e5d7c600165ae4cd6c2462c597458c2b8