日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java助记词反向_GitHub - gangan1345/mnemonic-sdk: Mnemonic bip39 bip32 bip44 生成助记词 私钥...

發布時間:2023/12/31 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java助记词反向_GitHub - gangan1345/mnemonic-sdk: Mnemonic bip39 bip32 bip44 生成助记词 私钥... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mnemonic-sdk

Mnemonic bip39 bip32 bip44

支持 BIP39 助記詞

支持 BIP32 子私鑰

支持 BIP44 多幣種管理

Install

Gradle:

Add dependency:

dependencies {

implementation 'com.lgann.develop:mnemonic-sdk:1.0.0'

}

Maven:

com.lgann.develop

mnemonic-sdk

1.0.0

pom

Usage

生成助記詞

// 默認生成12個單詞的助記詞

String mnemonic = MnemonicUtils.generateMnemonic();

System.out.println("mnemonic = " + mnemonic);

助記詞:exchange throw faculty fiction require father prefer mask organ crumble journey cricket

生成種子

// 根據助記詞生成種子

byte[] seed = MnemonicUtils.generateSeed(mnemonic, "");

System.out.println("seed = " + Numeric.toHexString(seed));

種子: 0x7eaedb7137ef3c3b9da8c2bd976d639455133ef76be73fda9c8342c922c98ca910fe195a5db88c43fa526b3504569f6aa7476d738a6e11f8feb48aa03ae0eac0

生成一個bip32 私鑰

byte[] privateKeyBytes = KeyPairUtils.generatePrivateKey(seed, KeyPairUtils.CoinTypes.EOS);

System.out.println("privateKeyBytes:"+ Numeric.toHexString(privateKeyBytes));

私鑰:0x05b04396cf928446dd14be3d58cad3f64ff7b61730462e14a0722caaaf6a1d49

generatePrivateKey具體實現如下

說明:生成的助記詞 通過bip32 bip44 轉換生成的私鑰 可以讓同一個 seed 可以支援多幣種、多帳戶等

// "m/44'/60'/0'/0/0"

// 1. we just need eth wallet for now

AddressIndex addressIndex = BIP44

.m()

.purpose44()

.coinType(coinType)

.account(0)

.external()

.address(0);

// 2. calculate seed from mnemonics , then get master/root key ;

// Note that the bip39 passphrase we set "" for common

ExtendedPrivateKey rootKey = ExtendedPrivateKey.fromSeed(seed, network);

// 3. get child private key deriving from master/root key

ExtendedPrivateKey childPrivateKey = rootKey.derive(addressIndex, AddressIndex.DERIVATION);

// 4. get key pair

byte[] privateKeyBytes = childPrivateKey.getKey();

如果是ETH錢包開發的話導入了web3j的庫 ,可使用ECKeyPair 生成私鑰和公鑰。

ETH、EOS等賬戶體系會有所不同,生成私鑰和公鑰有所區別

// 生成私鑰和公鑰

ECKeyPair keyPair = ECKeyPair.create(privateKeyBytes);

說明

BIP32:定義 Hierarchical Deterministic wallet (簡稱 “HD Wallet”),是一個系統可以從單一個 seed 產生一樹狀結構儲存多組 keypairs(私鑰和公鑰)。好處是可以方便的備份、轉移到其他相容裝置(因為都只需要 seed),以及分層的權限控制等。

BIP39:將 seed 用方便記憶和書寫的單字表示。一般由 12 個單字組成,稱為 mnemonic code(phrase),中文稱為助記詞或助記碼。

BIP44:基于 BIP32 的系統,賦予樹狀結構中的各層特殊的意義。讓同一個 seed 可以支援多幣種、多帳戶等。各層定義如下:

m / purpose' / coin_type' / account' / change / address_index

//purporse': 固定值44', 代表是BIP44

//coin_type': 這個代表的是幣種, 可以兼容很多種幣, 比如BTC是0', ETH是60'

//btc一般是 m/44'/0'/0'/0

//eth一般是 m/44'/60'/0'/0

總結

以上是生活随笔為你收集整理的java助记词反向_GitHub - gangan1345/mnemonic-sdk: Mnemonic bip39 bip32 bip44 生成助记词 私钥...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。