Что такое компонент bkp в предпродажном файле JSON?

Является ли компонент «bkp» предпродажного json-файла SHA3-хэшем пароля кошелька?

Ответы (1)

Нет. Ваш bkp не является SHA3 вашего пароля.

Это действительно очень просто. В начале бог сказал genwallet и...

  1. genwallet говорит :

    • genwallet(opts['seed'],pw,email)
  2. Вы говорите "вот моя электронная почта и pw"

  3. seed говорит: «дайте мне суперслучайное число» :

    • seed = random_key().decode('hex') # uses pybitcointools' 3-source random generator
  4. так что теперь вам нужно получитьencseed :

    • encseed = aes.encryptData(pbkdf2(pw),seed)
  5. поэтому мы направляемся к г-ну. да и скажи, что случилось :

    • def encryptData(key, data, mode=AESModeOfOperation.modeOfOperation["CBC"], iv=None):
    • ........
    • ........
  6. и теперь у вас есть encseed.

  7. то вы получаете `ethpriv :

    • ethpriv = sha3(seed)
  8. и вашaddress :

    • ethaddr = sha3(privtopub(ethpriv)[1:])[12:].encode('hex')
  9. и, наконец, ваш bkp :

    • bkp = sha3(seed + '\x02').encode('hex')
  10. Таким образом, ваш bkp — это sha3 вашего seed плюс, по сути, число «2» (число «1» использовалось для вашего btcpriv, чтобы отличить его от вашего ethpriv), закодированное в шестнадцатеричном формате .

  11. Очевидно, что БКП является резервной копией. Но это не резервная копия вашего пароля. Это резервная копия вашего семени.

    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'),

Получи это сейчас?


тот же пост/комментарий на Reddit