AES encrypt / decrypt
Runs entirely in your browser. Your files and data never leave your device.
About this tool
This tool encrypts text with a passphrase you choose, using AES-256-GCM. It turns the passphrase into an encryption key with PBKDF2 (600,000 rounds of SHA-256) and a random salt, so the same passphrase never produces the same key twice. Switch to decrypt mode, paste the encrypted text back in with the same passphrase, and you get the original text back.
Is my data uploaded anywhere?
No. Everything happens on your device through the browser’s built-in Web Crypto API, the same cryptography engine browsers use for HTTPS and WebAuthn. Nothing you type, including the passphrase, ever leaves your computer or touches a server. That makes it reasonable to use for a password you’re about to send over chat, an API key, or a private note, since the tool itself never sees any of it in transit.
Why does the same passphrase produce different output each time?
Every time you encrypt, the tool generates a fresh random salt and a fresh random initialization vector (IV), then feeds the salt into PBKDF2 alongside your passphrase to derive a one-time encryption key. Because the salt changes on every run, encrypting the same text with the same passphrase twice gives you two completely different results. That’s deliberate: it stops anyone comparing two encrypted blobs from figuring out the underlying text matches, and it defeats precomputed tables that try to guess common passphrases.
The output is a single block of text that bundles a version marker, the salt, the IV, and the ciphertext together, base64-encoded so it’s easy to paste into an email or a chat window. You don’t need to keep track of anything besides the passphrase to decrypt it later. The salt and IV aren’t secret; they only need to be unique, and storing them alongside the ciphertext is the standard way to do that.
What happens if I use the wrong passphrase or the text gets altered?
Decryption fails outright rather than silently producing garbage. AES-GCM includes an authentication tag with the ciphertext, so if the passphrase is wrong, the encrypted text was cut off partway through copying, or a single character got changed, the tool reports that decryption failed instead of returning corrupted text that looks plausible.
People use this to share a password or API key over chat or email without sending it in plain text, keep a personal note or backup file unreadable if it ends up in the wrong place, or protect small pieces of sensitive data before pasting them into a less trusted tool. For background on the algorithm, see NIST’s specification of AES-GCM and OWASP’s password storage guidance on PBKDF2 iteration counts.