當前位置:編程學習大全網 - 源碼下載 - ETH錢包開發02導入錢包

ETH錢包開發02導入錢包

本文主要講解通過助記詞、keystore、私鑰 3種方式來導入錢包。導入錢包就是說根據輸入的這3者中的壹個去重新生成壹個新的錢包。導入錢包的過程和創建的過程其實是差不多的。

根據助記詞導入錢包不需要原始密碼,密碼可以重新設置。根據用戶輸入的助記詞,先驗證助記詞的合規性(格式、個數等),驗證正確後,配合用戶輸入的密碼重新生成壹個新的錢包。

驗證助記詞的合規性(格式、個數等)

助記詞導入錢包

通過私鑰導入錢包其實和創建錢包的過程基本壹致。因為私鑰在導出的時候轉換成了16進制,所以在導入私鑰的時候,要把16進制轉換為byte數組。

keystore就是錢包文件,實際上就是錢包信息的json字符串。導入keystore是需要輸入密碼的,這個密碼是妳最後導出keystore時的密碼。將keystore字符串變成walletFile實例再通過 Wallet.decrypt(password, walletFile); 解密,成功則可以導入,否則不能導入。

這是Web3j的API,程序走到這裏經常OOM!

具體原因的話,我就不多說了,細節大家可以看這裏

/p/41d4a38754a3

解決辦法

根據源碼修改 decrypt 方法,這裏我用壹個已經修改好的第三方庫

修改後的解密方法

導入Kestore

1、導入助記詞和私鑰是不需要以前的密碼的,而是重新輸入新的密碼;導入Keystore則需要以前的密碼,如果密碼不正確,會提示地址和私鑰不匹配。

2、關於備份助記詞

用過imtoken的同學可以看到imtoken是可以導出(備份)助記詞的。這個壹開始我也很困惑,後來了解到其實它實在創建錢包的時候,在app本地保存了助記詞,導出只是講數據讀取出來而已。還有壹點,imtoken壹旦備份了助記詞之後,之後就沒有備份那個功能了,也就是說助記詞在本地存儲中刪除了;而且導入錢包的時候也是沒有備份助記詞這個功能的。

  • 上一篇:山香網絡課程
  • 下一篇:Devexpress源代碼
  • copyright 2024編程學習大全網