Bip32-Hd-Wallets
12 個單詞中失去了 3 個單詞,並且不確定順序,助記符
我在 12 個單詞中失去了 3 個單詞,除了前 3 個單詞和最後一個單詞之外,我不確定其餘單詞的順序。我用助記符和 crypto.com 錢包庫編寫了一個 Python 腳本,它可以工作,據我所知,至少我還沒有找到我的種子,我已經處理了大約 7000 萬個組合程式碼,但問題是我想看看是否有人可以讓它更快,或者只是一般地幫助我。
程式碼:
import time import itertools from itertools import chain,repeat,count,islice from collections import Counter from mnemonic import Mnemonic import json from chainlibpy import Wallet import sqlite3 Words2 = ["2048 mnemonic words"] count = 0 found = False mnemo = Mnemonic("english") #Words I know, just not sure of position Words2 = [''] #Words I know comos = ['word1', 'word2', 'word3'] def listToString(s): listToStr = ' '.join([str(element) for element in s]) return listToStr def createdb(address=None, mn=None): con = sqlite3.connect("Combos.db") cur = con.cursor() cur.execute("create table if not exists Addresses (address INT PRIMARY KEY, mnemonic NTEXT)") cur.execute("INSERT INTO Addresses (address, mnemonic) VALUES ('{}', '{}')".format(address, mn)) con.commit() con.close() def checkAddy(phrase): global found add = "address" # testadd = "testaddressnolongerinuse" wallet = Wallet(phrase) if wallet.address == add: createdb(wallet.address, phrase) found = True print("found") def randomizeWord(): global count global testing global comos randomw = random.sample(Words, 3) words2 = random.sample(Words2, len(Words2)) comos.extend(words2) comos.extend(randomw) comis = ["lastword"] comos.extend(comis) isValid = mnemo.check(listToString(comos)) if isValid: checkAddy(listToString(comos)) else: comos = ['word1', 'word2', 'word3'] comos = ['word1', 'word2' 'word3'] count = count +1 print(str(count)) while found != True: randomizeWord()
我想看看有沒有人可以讓它更快
我建議其中之一
- 在諸如 stackoverflow.com 或 codereview.stackexchange.com 之類的程式問答網站上詢問如何優化您的 Python 程式碼。優化 python 更多的是他們的事,並不一定需要任何比特幣知識。首先閱讀他們的旅遊/幫助頁面,以確保您的問題符合這些網站的職權範圍。
- 將您的程式碼與功能完全相同但經過多年廣泛使用的完善的程式碼進行比較。例如 btcrecover。這似乎也是用 Python 編寫的。
我在 python3 中編寫了一個類似的腳本來幫助種子恢復。你可以在這裡查看。它有一個互動式提示,允許您輸入單詞,但是,它要求您知道您知道的單詞的位置。如果您有 9/12 個單詞並且對 9 個單詞的位置(順序)零知識,那麼暴力破解種子的可能性非常小。祝你好運!