About AES Encryption
AES Encryption encrypts and decrypts text or whole files with AES-256-GCM — the same authenticated cipher used by TLS 1.3, modern disk encryption, and password managers. Paste a message and get back a single self-contained ciphertext string, or drop a file and download an encrypted .enc that hides even the original filename until it is decrypted with the same passphrase. Key derivation uses PBKDF2-SHA256 at 600,000 iterations with a random salt, so dictionary attacks against the passphrase are slow even with a strong GPU. All cryptography runs in your browser's WebCrypto subtle API — nothing is uploaded.
- No uploads
- Browser-only
- Works offline
- 100% free
How it works
- 1
Enter plaintext and passphrase
Type the message you want to encrypt and pick a passphrase. Stronger passphrases mean stronger encryption — see the Password Strength Visualizer if you want a sanity check.
- 2
Encrypt
Click Encrypt. A random 16-byte salt and 12-byte nonce are generated, PBKDF2 derives the AES key, and AES-256-GCM produces ciphertext with a built-in 128-bit authentication tag. The result is base64-packed with the salt and nonce so it's self-contained.
- 3
Decrypt with the same passphrase
Paste the ciphertext into the decrypt panel and enter the passphrase. If either is wrong by a single character, decryption fails fast — GCM rejects tampered ciphertext rather than returning garbage.
What AES-GCM actually guarantees
This tool uses AES in Galois/Counter Mode — the same authenticated-encryption scheme standardised in NIST SP 800-38D and used by TLS, SSH and disk encryption. 'Authenticated' is the part that matters: GCM does not just scramble your data, it also produces a 128-bit authentication tag. On decryption, if a single bit of the ciphertext, the nonce or the associated data has been altered, the tag check fails and you get an error instead of garbage. An attacker cannot flip bytes to silently corrupt your file or forge a valid ciphertext.
Under the hood the browser's Web Crypto API derives a key from your passphrase, generates a fresh random 96-bit nonce (initialisation vector) for every encryption, and encrypts in counter mode. The nonce is stored alongside the ciphertext — it is not secret, but it must never repeat under the same key, which is why the tool generates a new one each time rather than letting you pick it. Reusing a nonce with GCM is catastrophic: it can leak the XOR of two plaintexts and, worse, expose the authentication key itself.
Why the passphrase and its KDF do the real work
AES-256 is not the weak link — your passphrase is. A key derivation function (KDF) such as PBKDF2 or Argon2 stretches a human passphrase into a full-length key by hashing it tens or hundreds of thousands of times with a random salt. The salt stops precomputed rainbow tables; the iteration count makes each password guess expensive. With a fast unsalted hash an attacker tests billions of guesses per second on a GPU; with a properly tuned KDF that same hardware manages only thousands. That gap is the entire margin of safety for a passphrase-encrypted file.
The practical consequence: a four-word dictionary passphrase behind PBKDF2 is far stronger than 'P@ssw0rd!' behind the same KDF, because the attacker's cost scales with how unpredictable your input is, not how many symbol classes it contains. Generate one with the Password generator, and if you are unsure how much randomness you actually have, run it through the Password strength meter. The deeper mechanics are walked through in AES-GCM encryption explained.
Lose the password, lose the data — there is no recovery
This is symmetric encryption with no escrow, no backdoor and no 'forgot password' link, by design. The key exists only as something derived from your passphrase at the moment you type it; it is never written down, never transmitted, never stored. If you forget the passphrase, the ciphertext is mathematically indistinguishable from random noise and no one — including us — can recover it. That property is exactly why the tool is safe for sensitive material, and exactly why a lost passphrase is final.
Treat the passphrase as the asset, not the file. Store it in a password manager, write it on paper in a safe, or split it among trusted parties — but never email the encrypted file and its passphrase in the same thread, which hands both halves to anyone who reads either message. For long-term archives, test that you can decrypt the file today, before you rely on recovering it in five years.
GCM vs CBC, and what this tool deliberately isn't
The older AES-CBC mode only provides confidentiality — it hides the contents but does nothing to detect tampering. CBC has been the source of an entire family of real-world breaks (padding-oracle attacks like POODLE and Lucky Thirteen) precisely because the receiver decrypts attacker-controlled ciphertext before checking integrity. GCM closes that door by verifying the tag first. Unless you have a specific reason to do otherwise, authenticated modes like GCM are the modern default.
- This is not a password manager or a secure messenger — it encrypts a blob you control, it does not manage keys or identities for you.
- It does not protect a file already open on a compromised machine: encryption guards data at rest and in transit, not a device with malware reading your screen.
- It is not steganography — an encrypted file looks encrypted. It hides the contents, not the fact that something is hidden.
- Encrypting an already-compressed file (JPEG, MP4, ZIP) will not shrink it; ciphertext is incompressible, so compress before you encrypt, never after.
| Property | AES-GCM (this tool) | AES-CBC |
|---|---|---|
| Confidentiality | Yes | Yes |
| Tamper detection | Built in (128-bit tag) | None — needs a separate MAC |
| On corrupted input | Refuses to decrypt | Returns silent garbage |
| Known mode-level pitfalls | Nonce reuse is fatal | Padding-oracle attacks |
| Parallelisable | Yes | Decryption only |
CBC is not broken as a cipher, but it must be paired with a separate authentication step to be safe — GCM bundles both.
Related guides
All guidesPrivacy
How to privacy-clean a file before you share it
Strip the metadata, watermark the result, lock the password — all in your browser, in under a minute.
5 min read
Developer
AES-256-GCM encryption explained — what GCM mode actually buys you
AES is the cipher. GCM is the mode that makes it safe to use. Here's the difference, and why getting the nonce wrong is the bug that ends careers.
11 min read
Privacy
Password security in 2026 — what actually matters and what's mostly theatre
Length beats complexity. Don't rotate without a reason. Use a manager. Adopt passkeys when you can. Most other advice is folklore.
10 min read
Privacy
How to encrypt a file with a password (and share it safely)
Encrypting a file is easy. Getting the password to the other person without undoing the whole point is the part people get wrong.
7 min read
Frequently asked questions about AES Encryption
What happens if I forget the passphrase?
Your data is permanently unrecoverable. There is no backdoor, no recovery key, no support process — that's the whole security property of AES. Always keep a copy of the passphrase in a password manager (or split it across two trusted places) before you encrypt anything you can't afford to lose.
Why GCM specifically — not CBC or CTR?
GCM is an authenticated encryption mode (AEAD). Beyond confidentiality, it also detects any tampering with the ciphertext — a single flipped bit causes decryption to fail loudly. CBC and CTR provide confidentiality only and are vulnerable to padding-oracle and bit-flipping attacks unless paired separately with an HMAC. Modern crypto libraries default to GCM (or ChaCha20-Poly1305) for exactly this reason.
Is this compatible with OpenSSL `enc -aes-256-gcm`?
No — OpenSSL's enc command uses a different key-derivation scheme (EVP_BytesToKey with MD5 by default) and a fixed file header. This tool uses the modern PBKDF2-SHA256 + random salt approach that matches what WebCrypto, libsodium and most password managers do. The trade-off is interop: this tool round-trips with itself, not with arbitrary openssl files.
Privacy, offline use, browser support, and pricing questions are answered on the site-wide FAQ.