What is Wallet Encryption?
Wallet encryption is the process of securing a wallet's private key with a password. This ensures that even if someone gains access to the wallet file, they cannot use it without the password.
Ethers.js provides a simple way to encrypt and decrypt wallets using the encrypt
and fromEncryptedJson
methods.
Encrypting a Wallet
To encrypt a wallet, you need to have a wallet instance. You can create a wallet using a private key or a mnemonic phrase. Once you have the wallet, you can encrypt it with a password.
Sample Code for Encrypting a Wallet
const { ethers } = require("ethers");
// Create a wallet from a random private key
const wallet = ethers.Wallet.createRandom();
// Define a password for encryption
const password = "your_secure_password";
// Encrypt the wallet
async function encryptWallet() {
const encryptedJson = await wallet.encrypt(password);
console.log("Encrypted Wallet JSON:", encryptedJson);
}
encryptWallet();
Decrypting a Wallet
To decrypt a wallet, you need the encrypted JSON string and the password used for encryption. The fromEncryptedJson
method will return a wallet instance if the password is correct.
Sample Code for Decrypting a Wallet
const encryptedJson = "your_encrypted_wallet_json_here"; // Replace with your encrypted JSON
const password = "your_secure_password"; // The same password used for encryption
async function decryptWallet() {
try {
const wallet = await ethers.Wallet.fromEncryptedJson(encryptedJson, password);
console.log("Decrypted Wallet Address:", wallet.address);
} catch (error) {
console.error("Error decrypting wallet:", error);
}
}
decryptWallet();
How It Works
- The encrypt
method takes a password and returns an encrypted JSON string representing the wallet.
- The fromEncryptedJson
method takes the encrypted JSON and the password to return the original wallet instance.
- If the password is incorrect, an error will be thrown during decryption.
Conclusion
You have successfully learned how to encrypt and decrypt a wallet using Ethers.js! Always ensure that your password is strong and kept secure, as it is the key to accessing your wallet.