"Decrypt failed" on your Blockchain.com backup?
A wrong password and a damaged file produce the exact same error. Drop your wallet.aes.json here and find out, in a couple of seconds, which one you are actually dealing with. No password needed for that answer, no upload, no account. If the file turns out to be intact, you can then test a password you have in mind, in this tab, without it going anywhere.
Your backup file never leaves this browser tab. There is no upload, no server, and no network request of any kind. The file is read locally, in your own browser, purely to measure its structure. Nothing about it is transmitted, stored, or logged.
You do not need a password to use this. Everything the checker reports about your file, including whether it is intact or has lost bytes, is readable from the file's structure alone. That answer comes back before a password is mentioned.
If the file is intact, you can then test one password you have in mind. It runs in this tab like everything else here: your password is not transmitted, not stored, and not written into the page, and only the two blocks needed to answer yes or no are decrypted. It tests the one password you type. It does not guess, and it cannot find a password you have forgotten.
The rule that matters has not changed. Never send your wallet.aes.json and your password to somebody else's server. Together they are the entire wallet. A site that uploads both is asking for enough to take your coins, and that is a different thing from a page that reads a file you chose, in your own browser, and sends nothing anywhere.
Given that this is live money, the safest way to run this is the offline copy, disconnected from the internet. It's the recommended path for this tool, not just an option.
wallet.aes.json, or whatever the file was renamed to. Nothing leaves this browser tab.Nothing here is uploaded. Verify it yourself: open your browser's network tab before dropping the file, and confirm nothing fires.
Why "decrypt failed" tells you almost nothing on its own
Blockchain.info and Blockchain.com "My Wallet" accounts store the whole wallet as a single AES-encrypted blob, saved to disk as wallet.aes.json. Your password is stretched with PBKDF2-SHA1 into the AES key. Nothing inside is readable until it decrypts correctly.
That design has one very unhelpful consequence: the software cannot tell the difference between a wrong password and a broken file. Both produce garbage instead of a wallet, and both get reported to you as "decrypt failed". So the error message you are staring at is genuinely ambiguous, and people routinely spend months hunting a password when the real problem was that their file lost a few dozen characters in a bad download three years ago.
You can tell those two cases apart without the password, and that is exactly what the checker above does.
How a file can be ruled out without decrypting it
Inside the payload, the first 16 bytes are the salt and initialisation vector, and everything after that is AES-256-CBC ciphertext. AES is a block cipher: its output is always a whole number of 16-byte blocks. There is no such thing as a valid AES ciphertext that is 7 bytes past the last block boundary.
So if the decoded payload is not 16 bytes plus an exact multiple of 16, the file has lost characters somewhere, and no password will ever open it in that state. That is a truncated download, a mangled copy and paste, or a text editor that reformatted the file, not a forgotten password. The checker also confirms the base64 decodes cleanly and that the ciphertext is statistically random the way encrypted data has to be.
Every one of those checks reads the file's shape. None of them needs your password, which is why the checker gives you that verdict before asking for anything.
"blockchain.info backup file decrypt failed" and the format versions
Blockchain's backup format has gone through several versions, and a recovery tool that assumes the wrong one will fail on a perfectly good file. The checker reports which version yours actually is:
- The earliest exports (v1 and before) are just one long run of base64 with no JSON wrapper around it at all. If you open the file and see nothing but unbroken scrambled characters, this is what you have.
- v2, v3, and v4 wrap that base64 in JSON alongside a
versionnumber and apbkdf2_iterationscount. - A config file nests a whole wallet export inside its own
payloadfield. It looks different but holds the same thing, and the checker unwraps it. - An already-decrypted wallet body is readable JSON with a
guidand asharedKey. If that is what you have, you are not locked out at all, and the file is dangerous to leave lying around.
The iteration count, and why it is the number that matters
Every password guess has to be run through PBKDF2 the same number of times the file specifies. That count is stated in the file, in plain text, and the checker reads it out. It is the single number that decides whether working through the passwords you might plausibly have used is a short job or a long one, which is why it is the first thing I look at when someone asks what a recovery would involve.
"backup file not opening" when the file is fine
If the checker says your file is structurally intact and it still will not open, the shortlist is short. The password is close but not exact (capitalisation, a trailing space, a number on the end, an old keyboard layout). Or the wallet has a second password, so the file decrypts correctly and the private keys stay locked behind another one, which looks like success followed by an inexplicable inability to spend. Or the tool you are using was built for a different format version than the one you have.
Those causes are worked through in order, with what to try for each, in why a Blockchain.com backup file won't decrypt.
Do not upload this file anywhere
Your wallet.aes.json plus your password is the entire wallet. Any site that asks you to upload both is asking for enough to take your coins, and "paste your backup here and we'll check it for you" is a standard opening move. The word doing the work in that sentence is upload. This checker never sends either one anywhere: the file is read locally by JavaScript in your own browser, and if you choose to test a password, that runs in the same tab through your browser's own crypto. You can confirm all of it yourself by opening the network tab before you start and watching nothing fire. The offline copy is the same tool in a single file you can run disconnected entirely, which is the right way to do this with a wallet that holds money.
What this checker can and can't tell you
It can tell you: which Blockchain.com format your file is, the PBKDF2 iteration count, whether the base64 decodes cleanly, whether the ciphertext is a whole number of AES blocks, whether the payload looks like encrypted data at all, whether the wallet declares a second password, and therefore whether "decrypt failed" is about your file or about your password.
It can also tell you whether a password you already have in mind is the right one. That is a genuinely different thing from finding a password you have forgotten, and the difference is worth being precise about: it tests the one password you type and answers yes or no. It does not guess, does not work through a list, and gets no closer to a password nobody remembers. On an intact file that answer is decisive both ways. On a damaged one, a yes still counts (and is the best news this page can give you, because it means the password was never your problem), while a no proves nothing, since the missing bytes may be the ones being tested, so it is reported as inconclusive.
It cannot open your wallet for you, confirm a balance, or tell you whose wallet it is, because all of that is on the other side of the encryption and stays there: only the two blocks needed to answer the password question are ever decrypted, and nothing from inside your wallet is displayed or kept. A structurally intact file is not a promise of recovery either. It means the file is not what is stopping you, which is a far better position than the alternative, but the password still has to be found.
If you are not certain the file you have is even a Blockchain.com backup, the wallet file inspector identifies any wallet file: Bitcoin Core wallet.dat, Electrum, Ethereum keystores, and more.
FAQ
Blockchain.com says decrypt failed. Is my password wrong?
Not necessarily, and you can rule out the other cause for free right here. A wallet.aes.json holds a 16-byte salt and IV followed by AES ciphertext, which is always a whole number of 16-byte blocks. Drop the file above: if it reports the payload as block-aligned and the base64 as clean, the file is intact and the password is the open question. If it reports an incomplete block, characters were lost when the file was downloaded, copied, or pasted, and no password can open it in that state. Those two answers lead to completely different work.
Is it safe to drop my wallet.aes.json here?
The file is read locally, by JavaScript in your own browser, and never transmitted, stored, or logged. There is no upload and no server involved. You can verify that yourself: open your browser's network tab before dropping the file and confirm nothing fires, including while testing a password. The structural verdict needs no password at all. If you go on to test one, that also happens in your browser, and it is the sending of a file and a password to someone else's server that is dangerous, not the typing. For a real wallet the recommended path is the offline copy, run disconnected from the internet, where you do not have to take any of that on trust.
My backup file is not opening at all. What does that mean?
Work out which failure you have before trying to fix it. If the file will not even load into a recovery tool, it is usually not valid JSON any more, which the checker above detects directly. If it loads but reports a decrypt failure, that is either the password or a truncated payload, and the checker tells those apart. If it opens and the funds will not move, that is the second-password case, not a decrypt failure at all.
What is the difference between v1, v2, v3, and v4 backups?
The practical differences are the PBKDF2 iteration count and the wrapper. The earliest exports are raw base64 with no JSON around them; v2 and later wrap the payload in JSON with a stated version and iteration count. It matters because a tool that assumes the wrong version will fail on a perfectly good file. The checker above reports which version yours actually is.
The checker says my file is truncated. Are my coins gone?
Not automatically, but be careful with this one. First, go looking for another copy before doing anything else: the original download folder, email attachments, old phone backups, cloud storage version history, and any external drive from that era. An intact second copy makes the problem disappear entirely. If no intact copy exists, a damaged backup is genuinely harder than a forgotten password and what is possible depends on how much of the file survived. That is worth a real conversation rather than a promise from a web page.
Is it safe to type my password into this page?
Nothing about your file needs it: format, version, iteration count, base64 validity, block alignment, and randomness all come from the structure, and you get that verdict without typing anything. The password test is a separate step you choose. When you do use it, your password is not transmitted, not stored, and not written into the page; your browser's own WebCrypto derives the key; only the first two blocks are decrypted, which is the least that can answer the question; and the result is a yes or a no with nothing from inside your wallet shown or kept. What is genuinely dangerous is a site that takes your wallet.aes.json and your password onto its server, because together they are the whole wallet. If you would rather not weigh that up at all, run the offline copy with your network switched off. And note the limit: this checks a password you have, it cannot find one you have forgotten, which is offline work on hardware I control.
Can you decrypt it for me?
Recovering a forgotten Blockchain.com password is one of the things I do, done offline rather than by a web page. What the checker above gives you free is the part you need before that conversation is even worth having: whether the file is intact. Read Blockchain.com wallet recovery for how the work runs and what it costs.