Appearance
java
import org.web3j.crypto.Bip32ECKeyPair;
import org.web3j.crypto.ECKeyPair;
import org.web3j.crypto.Keys;
import org.web3j.crypto.MnemonicUtils;
import org.web3j.utils.Numeric;
public class MnemonicToPrivateKey {
public static void main(String[] args) {
// 示例助记词(mnemonic)
String mnemonic = "pistol kiwi lava parrot bicycle curious talent pitch exile risk merit rare";
String password = ""; // BIP39 允许可选的 passphrase,默认为空字符串
// 1. 通过助记词生成种子
byte[] seed = MnemonicUtils.generateSeed(mnemonic, password);
// 2. 通过种子创建 HD 钱包主私钥
Bip32ECKeyPair masterKeyPair = Bip32ECKeyPair.generateKeyPair(seed);
// 3. 使用 BIP44 标准路径:m/44'/60'/0'/0/0(Ethereum 默认路径)
int[] derivationPath = {44 | Bip32ECKeyPair.HARDENED_BIT, 60 | Bip32ECKeyPair.HARDENED_BIT, 0 | Bip32ECKeyPair.HARDENED_BIT, 0, 0};
Bip32ECKeyPair derivedKeyPair = Bip32ECKeyPair.deriveKeyPair(masterKeyPair, derivationPath);
// 4. 获取私钥
String privateKeyHex = Numeric.toHexStringNoPrefix(derivedKeyPair.getPrivateKey());
System.out.println("私钥: " + privateKeyHex);
// 5. 生成钱包地址
ECKeyPair ecKeyPair = ECKeyPair.create(derivedKeyPair.getPrivateKey());
String address = "0x" + Keys.getAddress(ecKeyPair);
System.out.println("钱包地址: " + address);
}
}