跳至主要内容
本页面使用机器翻译自英语,可能包含错误或不清楚的语言。如需最准确的信息,请参阅英文原文。由于更新频繁,部分内容可能与英文原文有出入。请加入我们在 Crowdin 上的努力,帮助我们改进本页面的翻译。 (Crowdin translation page, Contributing guide)

V3 keystore

本例演示如何加密和解密 keystore V3

@kaiachain/ethers-ext 软件包中导入钱包类。

已声明加密密钥密码信息。

您还可以使用 **ethers.Wallet.createRandom().encrypt()**函数创建加密密钥。

使用密码加密密钥解密账户

您可以查看账户的地址和私钥。

用另一个密码password2加密账户。 它将生成另一个 encryptedKey2.

使用 password2 重新解密来自 encryptedKey2account2 并检查 account2 的地址和私钥是否与来自 encryptedKeyaccount 的信息相同。

执行主函数。

keystoreV3.js

const { Wallet } = require('@kaiachain/ethers-ext')
// Eth V3. ethers.Wallet.createRandom().encrypt("password")
const encryptedKey = {
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',
},
}
// const address = "0x029e786304c1531aF3aC7db24A02448e543A099E";
// const key = "0x1b33a48f58d8c85ab142a7375fcf18714d88271f6647cfa6b54f1be66b05a762";
const password = 'password'
const password2 = 'password2'
async function main() {
const account = Wallet.fromEncryptedJsonSync(encryptedKey, password)
console.log('\ndecrypted address')
console.log(account.address)
console.log('\ndecrypted privateKey')
console.log(account.privateKey)
account.encrypt(password2).then((encryptedKey2) => {
const account2 = Wallet.fromEncryptedJsonSync(encryptedKey2, password2)
console.log('\ndecrypted address with new password')
console.log(account2.address)
console.log('\ndecrypted privateKey with new password')
console.log(account2.privateKey)
})
}
main()

output

❯ node keystoreV3.js
decrypted address
0x029e786304c1531af3ac7db24a02448e543a099e
decrypted privateKey
0x1b33a48f58d8c85ab142a7375fcf18714d88271f6647cfa6b54f1be66b05a762
decrypted address with new password
0x029e786304c1531af3ac7db24a02448e543a099e
decrypted privateKey with new password
0x1b33a48f58d8c85ab142a7375fcf18714d88271f6647cfa6b54f1be66b05a762

让这个页面变得更好