我们在新建以太坊账户时,会让你指定一个密码,就是上图的Passphrase
同时可以在keystore目录里看到这个账户的keystore文件
那么这个账户的keystore文件如何生成的?
keystore文件实例
{
"address": "758161a44d6fbd558c01c6378bf426207e84a003",
"crypto": {
"cipher": "aes-128-ctr",
"ciphertext": "9cec8107d25b17a10666257a25dc16d89e93acce88127ae5949236b49838897c",
"cipherparams": {
"iv": "e0441896455036fa34808e27d052912d"
},
"kdf": "scrypt",
"kdfparams": {
"dklen": 32,
"n": 262144,
"p": 1,
"r": 8,
"salt": "b55e5aabbc6ca7c4577040510346a67c4a874273cb9d21ef0f963669a4e58356"
},
"mac": "a7380f746758e3d8349358d379c38f7b537f072499c0c5dcb85b338c19137e82"
},
"id": "dfba1c73-0ee9-4d52-8633-5e37361ef8eb",
"version": 3
}
address:账户地址
cipher:对称加密算法
ciphertext:对称加密的输出文本,就是上面的步骤2
cipherparams:对称加密时的参数,这里有iv
kdf:利用密码推导密钥的算法
kdfparams:kdf算法需要的参数
mac:验证密码的正确性,上图中,无论你输入什么密码,都会产生一个密钥(decryption key),这个密钥对ciphertext解密会产生一个私钥,无法得知密码的正确性,mac生成步骤上面步骤2有
id : uuid
version: Keystore 文件的版本,目前为第 3 版,也称为 V3 KeyStore。
本文参考:
https://learnblockchain.cn/2018/10/25/eth-web-wallet_2/
https://www.cnblogs.com/405845829qq/p/10103747.html