如何基于Keystore UTC文件获取私钥?以太坊私有节点账户密码遗忘
以太坊Keystore UTC文件提取私钥方案
Ethereum Keystore UTC文件是通过用户设置的密码加密存储账户私钥的标准文件,无通用解密后门,必须通过密码或暴力破解完成解密。
已知完整账户密码的提取方法
- 先安装Python的web3依赖库:
pip install web3 - 使用以下代码完成解密,将代码中的keystore文件路径、账户密码替换为你自己的对应内容即可:
from web3 import Web3 w3 = Web3() # 读取keystore文件内容 with open("/path/to/your/keystore/file", "r") as f: keystore_info = f.read() # 解密获取私钥 private_key = w3.eth.account.decrypt(keystore_info, "your_account_password") # 输出十六进制格式私钥 print("账户私钥为:", private_key.hex())
- 提示:解密得到的私钥请离线冷存储,不要在联网环境下明文留存,避免资产被盗
遗忘账户密码的暴力破解方法
仅适用于密码复杂度较低、你记得部分密码特征(比如长度、常用字符组合)的场景,复杂度高的密码基本无法破解成功:
- 准备适配你密码特征的字典文件,覆盖所有你可能使用的密码组合
- 可以使用开源工具
ethereal完成字典遍历破解,运行命令示例:ethereal wallet keys from keystore --keystore /path/to/keystore --dictionary /path/to/password/dict - 也可以自行编写遍历脚本,调用上述web3的解密接口逐行尝试字典中的密码,直到解密成功
内容的提问来源于stack exchange,提问作者Trimantra Software Solution
相关产品推荐
相关产品推荐

