Text Encryptor
Encrypt and decrypt text with a passphrase using AES-256-GCM, entirely in your browser.
Everything happens on this device. AES-256-GCM with PBKDF2-HMAC-SHA-256, 600,000 iterations — no server, no account, no upload.
Passphrase strength: —
Lose the passphrase and the message is gone for good — there is no reset link and no recovery, by design. Store it in a password manager before you send the ciphertext on.
How it works
Type a message, choose a passphrase and press Encrypt. The tool asks the browser’s Web Crypto API to stretch your passphrase into a 256-bit key using PBKDF2-HMAC-SHA-256 with 600,000 iterations (the current OWASP recommendation) and a fresh random 16-byte salt, then encrypts the UTF-8 bytes of your message with AES-256-GCM under a fresh random 12-byte IV. AES-GCM is authenticated encryption, so decryption fails loudly if even one character of the ciphertext is altered.
The result is a single Base64 string containing a version byte, the iteration count, the salt, the IV and the ciphertext with its authentication tag — everything needed to decrypt except the passphrase. Paste that string back in, switch to Decrypt, enter the same passphrase and you get the original text. Because the salt and IV are random, the same message encrypted twice produces two different ciphertexts; both decrypt correctly.
No standard cipher is hand-rolled here — all cryptography is done by the browser’s
native crypto.subtle implementation. Nothing you type is uploaded, logged or
stored, so the page is safe for notes, credentials and anything else you would not paste
into an online service. The security of the result depends entirely on your passphrase:
a short or reused one can be brute-forced offline, so prefer a long random phrase.
Frequently asked questions
How do I encrypt text with a password?
Type or paste your message, enter a passphrase and press Encrypt. The tool derives a 256-bit key from your passphrase with PBKDF2-HMAC-SHA-256 (600,000 iterations, random 16-byte salt) and encrypts the text with AES-256-GCM under a random 12-byte IV. You get one Base64 string containing the salt, the IV and the ciphertext — paste it back in with the same passphrase to decrypt.
Is this online text encryption actually safe?
The cryptography is done by your browser's built-in Web Crypto API, not by hand-written code, and nothing you type is ever sent anywhere — the page makes no network requests, so your plaintext and passphrase stay on your device. The weak link is the passphrase: a short or reused one can be brute-forced offline against the ciphertext, so use a long random phrase and store it in a password manager.
Why does the same message produce different encrypted text each time?
A fresh random salt and a fresh random IV are generated for every encryption, so identical input never produces identical output — that is a deliberate property of AES-GCM that stops attackers from spotting repeated messages. Both versions decrypt to the same plaintext. If even one character of the ciphertext is changed, the GCM authentication tag fails and the tool refuses to decrypt rather than returning corrupted text.