Okay, before you even touch your wallet file, grab a password from something like Bitwarden or 1Password. Make it 20+ characters, mix in numbers, symbols, whatever. Why? Wallet encryption like Ethereum's scrypt or Bitcoin's AES-256-CBC relies on your password being the weak link. A crappy "password123" gets brute forced in hours. This one's got layers-random salt, thousands of iterations-that make it slow for attackers. I usually generate mine with uppercase, lowercase, digits, and a symbol or two. Test it twice before using.
Sound familiar? You've probably got one of those already. If not, set it up now. It's free and beats scribbling on paper.
Look, not all crypto wallets encrypt the same way. Bitcoin Core? AES-256-CBC with a random master, derived from your passphrase via SHA-512. Ethereum? UTC/JSON files using AES-128-CTR, scrypt for derivation, and a MAC check. Others like Skycoin go scrypt chacha20poly1305. The thing is, you gotta know yours to encrypt properly.
In my experience, most folks mess up by assuming it's all the same. Check your wallet app's docs. For BTC, it's in Bitcoin Core. ETH, MyEtherWallet or MetaMask exports.
Open it in a text editor. See "Crypto" with "cipher": "aes-128-ctr" and "kdf": "scrypt"? Ethereum style. JSON with "meta" and "secrets"? Maybe Skycoin. Binary blob? Bitcoin wallet.dat-don't edit manually.
So you're on ETH or ERC-20s. Easiest way? MyEtherWallet. No downloads, client side only. Here's how I do it every time.
What's next? Test decrypt. Back to MEW, upload file, enter password. If MAC fails, wrong pass-file stays safe. Potential issue: Weak scrypt means long pass or you're toast against GPUs.
Bitcoin's different. Using Bitcoin Core? It's wallet.dat, encrypts privkeys with AES-256-CBC. Master random, then encrypted by your passphrase.
Okay, steps:
But honestly, for BTC now, use Electrum. HD wallets from BIP39 seeds. Encrypt seed with AES too. I usually do: New wallet → Standard → Encrypt after setup.
Issue alert: Passphrase change updates rounds. Slow machine? Fewer rounds, weaker. Run on decent hardware.
The thing is, encryption's only as good as your brain. Scrypt slows brute force (say, 1M guesses/sec on GPU vs billions for plain AES), but short passes kill it. Aim for 25+ chars.
| Bad Pass | Time to Crack (GPU Farm) | Good Alt |
|---|---|---|
| password123 | Hours | Tr0ub4d0r&Fl1pP3r$2026 |
| mywallet2026 | Days | X7kP!m9qR2vL8wT5yN3zB6jH4uF1e |
| CorrectHorseBatteryStaple | Weeks | Same + random: CorrectHorseBatteryStaple9!vQ2x |
See? Diceware's okay base, but add entropy. Why does this matter? Lost pass = lost coins forever. No reset button in crypto.
In my experience, folks reuse exchange passes. Don't. Unique per wallet.
Modern wallets? Hierarchical deterministic. BIP32/39/44. 12-24 word seeds generate infinite keys. Encrypt the seed, not endless privkeys.
Steps for Electrum (BTC/altcoins):
Pro tip: Print seed on metal (steel plate). Encrypt digital backups only.
Alright, let's talk fails. I've seen 'em all.
First: Editing JSON manually. Change salt or IV? MAC fails, can't decrypt. Fix: Don't touch. View only.
Second: Online tools. MEW's safe (client side), but shady sites steal keys. Always air gapped.
Third: Weak hardware. Scrypt n=8192 takes seconds to derive-good. But old PC? Upgrade or use stronger KDF if wallet allows.
And cloud storage? Google Drive hacks happen. Use VeraCrypt container: Encrypt folder with AES XTS, pivot=10. Mount, drop wallet in, unmount. Fees? None. Gas for testing sends: ETH ~20 gwei ($0.0005), BTC negligible.
| Chain | Encryption | Tool | Gas/Fees Example |
|---|---|---|---|
| ETH | AES-128-CTR + scrypt | MyEtherWallet | 0.000005 ETH test |
| BTC | AES-256-CBC + SHA512 | Bitcoin Core/Electrum | ~0.00001 BTC |
| Solana | Wallet app AES | Phantom export | ~0.000005 SOL |
| Multi (USDC/USDT) | HD seed AES | Exodus | Chain dependent |
Pick per chain. Rotate if needed.
Want more? Don't rely on wallet defaults. Use GPG or age for outer layer.
Okay, GPG way:
Why? Double encryption. Inner wallet scrypt, outer GPG PBKDF2. Brute both? Nightmare.
Or VeraCrypt volume. I usually make 1GB hidden volume inside outer. Plausible deniability. Mount, encrypt wallet inside, done.
Issue: Forgetting outer pass. Solution: Same manager, different entries.
Encrypt done? Send 0.001 BTC/0.01 ETH to it. Unlock, spend to another address. Gas: ETH mainnet ~$0.50 now, testnets free.
Questions: Decrypts? MAC passes? Balance shows? Spend works? If no, nuke and restart.
Pretty much foolproof if you follow.
Paranoid? Good. Boot Tails OS on USB. No internet. Generate wallet there. Encrypt. Copy to two VeraCrypt USBs. Shred temp files.
In my experience, this beats 99% hacks. Cost? Free USBs.
One more: Multi sig wallets. 2-of-3 keys encrypted separately. Tools like Electrum support. Spread risk.
Every month: Wipe test wallet. Restore from encrypted file + pass. Time it. Under 5 mins? You're set.
For seeds: Write 24 words wrong on purpose. Fix from memory. Muscle memory wins.