AES Encrypt/Decrypt
Encrypt or decrypt text with a passphrase using AES-GCM via the browser's native Web Crypto API.
How this tool works
Choose encrypt or decrypt
Encrypt plain text with a passphrase, or decrypt a base64 value this tool previously produced.
Enter your text and passphrase
Both are required - the passphrase never leaves the derivation step as plain text.
A key is derived with PBKDF2
250,000 iterations plus a random salt turn the passphrase into a proper 256-bit AES key.
Copy the result
Encryption produces one base64 string containing the salt, IV, and ciphertext together.
Quick facts
- Category
- Encoders & Decoders
- Best for
- Sharing a short secret with someone who knows the passphrase, for casual convenience
About this tool
Encrypt a piece of text with a passphrase using AES-GCM, the authenticated encryption mode built into the browser's native Web Crypto API, or decrypt a value this tool previously produced. The passphrase is never used directly as the encryption key - it's run through PBKDF2 with 250,000 iterations and a random salt to derive a proper 256-bit AES key, which is the standard defense against an attacker simply trying every dictionary word or common passphrase against a fast, un-stretched hash. Each encryption generates a fresh random salt and initialization vector, both stored alongside the ciphertext in the single base64 output string, so decryption only needs the passphrase and that one string to recover the original text. Being direct about scope: this is built for casual, convenience use - sharing a short secret with someone who knows the passphrase, or keeping a note unreadable at a glance - not as a substitute for proper key management, secret rotation, hardware-backed key storage, or audited cryptographic tooling in a production security context, where passphrase-only encryption has real limitations this tool doesn't attempt to solve. Runs entirely client-side; nothing is transmitted anywhere.
Why use this tool
Native Web Crypto API
Uses the browser's built-in AES-GCM implementation, not a JavaScript reimplementation of the cipher.
Passphrase stretching via PBKDF2
250,000 iterations and a random salt defend against fast dictionary attacks on the passphrase.
Authenticated encryption
AES-GCM detects tampering or a wrong passphrase on decrypt, rather than silently returning garbage.
Honest about its scope
Clearly framed as casual/convenience encryption, not a replacement for real key management.
Frequently asked questions
No - this is intentionally scoped for casual use, like sharing a short secret with someone who knows the passphrase. Production secrets deserve proper key management: hardware-backed key storage, access-controlled secret managers, key rotation, and audit logging, none of which a browser-based passphrase tool can provide. The cryptography itself (AES-GCM, PBKDF2) is sound, but passphrase-only encryption has inherent limits that this tool doesn't try to work around.
The output concatenates three things before base64-encoding: a random 16-byte salt (used to derive the key from your passphrase), a random 12-byte initialization vector (required by AES-GCM), and the encrypted ciphertext itself. Decryption reads the salt and IV back out of that same string, so no separate metadata needs to be tracked alongside it - the one string is self-contained.
AES-GCM is an authenticated encryption mode - it includes a built-in integrity check that fails loudly if the derived key is wrong (which happens automatically with a wrong passphrase, since the key is derived from it) or if the ciphertext has been altered. This is a deliberate security property: silently returning corrupted plaintext on a wrong key would be worse than a clear failure.
Explore more free tools
Formatters, converters, validators, and generators - all free and running entirely in your browser.
Browse more tools