Является ли компонент «bkp» предпродажного json-файла SHA3-хэшем пароля кошелька?
Нет. Ваш bkp не является SHA3 вашего пароля.
Это действительно очень просто. В начале бог сказал genwallet и...
genwallet(opts['seed'],pw,email)
Вы говорите "вот моя электронная почта и pw"
seed говорит: «дайте мне суперслучайное число» :
seed = random_key().decode('hex') # uses pybitcointools' 3-source random generator
так что теперь вам нужно получитьencseed
:
encseed = aes.encryptData(pbkdf2(pw),seed)
поэтому мы направляемся к г-ну. да и скажи, что случилось :
def encryptData(key, data, mode=AESModeOfOperation.modeOfOperation["CBC"], iv=None):
........
........
и теперь у вас есть encseed.
ethpriv = sha3(seed)
ethaddr = sha3(privtopub(ethpriv)[1:])[12:].encode('hex')
bkp = sha3(seed + '\x02').encode('hex')
Таким образом, ваш bkp — это sha3 вашего seed плюс, по сути, число «2» (число «1» использовалось для вашего btcpriv, чтобы отличить его от вашего ethpriv), закодированное в шестнадцатеричном формате .
Очевидно, что БКП является резервной копией. Но это не резервная копия вашего пароля. Это резервная копия вашего семени.
print "Ваше семя:", getseed(b['withwallet'],w['bkp'],b['ethaddr'])
приводит к...
def recover_bkp_pw(bkp,pw):
return getseed(bkp['withpw'],pw,bkp['ethaddr'])
....
"withpw": aes.encryptData(pbkdf2(pw),seed).encode('hex'),
или же...
def recover_bkp_wallet(bkp,wallet):
return getseed(bkp['withwallet'],wallet['bkp'],bkp['ethaddr'])
...
"withwallet": aes.encryptData(pbkdf2(wallet['bkp']),seed).encode('hex'),
Получи это сейчас?