Protect any message with a passphrase using AES-256-GCM encryption — everything runs locally in your browser.
No recovery: if you lose this passphrase, nobody, including us, can decrypt the text.
Output format: Base64(salt || IV || ciphertext). Keep it exactly as-is to decrypt later.
This tool uses AES-256-GCM, an authenticated symmetric encryption algorithm, to protect text with a passphrase you choose. Encryption and decryption happen entirely in your browser using the Web Crypto API — your text and passphrase are never sent anywhere. Because it's symmetric encryption, the same passphrase is needed to decrypt the message later, so choose one you'll remember or store safely.
Is my text ever uploaded to a server?
No. All encryption and decryption happens locally in your browser using the Web Crypto API. Your text and passphrase never leave your device.
What encryption algorithm does this tool use?
AES-256-GCM, an authenticated symmetric encryption cipher. The key is derived from your passphrase using PBKDF2 with SHA-256 and 250,000 iterations, combined with a random 16-byte salt.
What format is the encrypted output?
The output is a single Base64 string containing the random salt, the random initialization vector (IV), and the ciphertext concatenated together (salt || IV || ciphertext). You need this exact string, unmodified, to decrypt it.
Can you recover my text if I forget the passphrase?
No — and we couldn't even if we wanted to, since we never see your passphrase or text. Without the correct passphrase, the encrypted data cannot be decrypted. There is no recovery option, so store your passphrase somewhere safe.
Why do I need a strong passphrase?
AES-256-GCM itself is extremely secure, but the encryption is only as strong as your passphrase. A short or common passphrase can be guessed even though the algorithm is unbreakable. Use a long, unique passphrase.
Can I decrypt the output with my own code?
Yes. Base64-decode the output: the first 16 bytes are the salt, the next 12 bytes are the IV, and the rest is the AES-GCM ciphertext followed by its 16-byte authentication tag. Derive a 256-bit key from your passphrase and the salt with PBKDF2-SHA-256 (250,000 iterations), then decrypt with AES-256-GCM.
All encryption and decryption happens locally in your browser. Your text and passphrase are never uploaded or transmitted anywhere.