本文へスキップ
このページは英語からの機械翻訳を使用しており、誤りや不明瞭な表現が含まれている可能性があります。最も正確な情報については、オリジナルの英語版をご覧ください。頻繁な更新のため、一部のコンテンツはオリジナルの英語になっている可能性があります。Crowdinでの取り組みに参加して、このページの翻訳改善にご協力ください。 (Crowdin translation page, Contributing guide)

V3キーストア

この例では、keystore V3を暗号化および復号化する方法を示す。

web3py_ext から extend をインポートして、web3 を kaia web3 に拡張します

eth_accountからAccountクラスをインポート

keystore v4 を定義します。この手順では、ファイルからキーストアを作成する方法を説明します。

ファイルからキーストアを読み込み、「パスワード」で復号化する。

鍵ストアのpublic鍵と秘密鍵を取得する。

Account.encryptを使用することで、同じアドレスと異なるパスワードで新しいキーストアを作成することができます。

new_keystorev3_keystore_str と同じ publicprivate キーを持っているか確認する。

keystoreV3.js

from web3py_ext import extend
from eth_account import Account
v3_keystore_str = '''{
"address": "029e786304c1531af3ac7db24a02448e543a099e",
"id": "9d492c95-b9e3-42e3-af73-5c77e932208d",
"version": 3,
"crypto": {
"cipher": "aes-128-ctr",
"cipherparams": {"iv": "bfcb88a1501e2bb1e6694c03da18953d"},
"ciphertext": "076510b4e25d5cfc31239bffcad6036fe543cbbb04b9f3ec719bf4f61b58fc05",
"kdf": "scrypt",
"kdfparams": {
"salt": "79124f05995aae98b3088d8365f59a6dfadd1c9ed249abae3c07733f4cbbee53",
"n": 131072,
"dklen": 32,
"p": 1,
"r": 8
},
"mac": "d70f83824c2c30dc5cd3a244d87147b6aa713a6000165789a82a467651284ac7"
}
}'''
with open('keystore', 'w') as f:
f.write(v3_keystore_str)
with open('keystore') as f:
pk = Account.decrypt(f.read(), 'password')
acc = Account.from_key(pk)
print(acc.address, acc.key.hex())
# create a new keystore with other password
new_keystore=Account.encrypt(acc.key.hex(),'password1')
new_pk = Account.decrypt(new_keystore, 'password1')
acc = Account.from_key(pk)
print("New keystore")
print(acc.address, acc.key.hex())

output

❯ python keystore-v3.py
0x029e786304c1531aF3aC7db24A02448e543A099E 0x1b33a48f58d8c85ab142a7375fcf18714d88271f6647cfa6b54f1be66b05a762
New keystore
0x029e786304c1531aF3aC7db24A02448e543A099E 0x1b33a48f58d8c85ab142a7375fcf18714d88271f6647cfa6b54f1be66b05a762

ページを改善してください。