Encrypt Decrypt

Encrypt a note with a password using AES-256, then switch the Mode select to read it back.

Text
Ciphertext
Runs locally in your browser

About the Encrypt Decrypt

The password you type is never used as a key directly. It is stretched with PBKDF2 over 100,000 rounds of SHA-256 against a fresh random 16 byte salt, and the derived 256-bit key drives AES. That stretching is what makes a short human password expensive to attack by brute force, and the random salt means the same password never produces the same key twice.

AES-256-GCM is the default because it is authenticated: any tampering with a single byte of the ciphertext makes decryption fail loudly instead of returning corrupted text. AES-256-CBC is offered for compatibility with older systems that expect it, but it carries no integrity tag, so a modified message can decrypt to garbage without complaint. Unless something on the other end demands CBC, leave GCM selected.

Output is a self describing container: a four byte header naming the cipher, then the salt, then the initialisation vector, then the ciphertext, all encoded as Base64 or hex. Because the header travels with the message, the decrypt side only needs the password and works out the rest. Everything runs through the browser WebCrypto engine, so no plaintext, password or ciphertext reaches a server. For a dedicated one way page use Text Decrypt, and if you only need a fingerprint rather than a reversible message see the All Hash Generator.

How to use

  1. Leave Mode on Encrypt and paste the text you want to protect.
  2. Replace the sample Password with a strong shared secret.
  3. Copy the Base64 ciphertext and send it through whatever channel you like.
  4. To read a message, switch Mode to Decrypt, paste the ciphertext and enter the same password.

Common questions

Can the ciphertext be read without the password?
Not by any practical means. AES-256 with a PBKDF2 stretched key has no known shortcut, so the strength rests entirely on how guessable your password is.
Why is the ciphertext longer than my text?
It carries a four byte header, a 16 byte salt, an initialisation vector and, under GCM, a 16 byte authentication tag before Base64 expands the whole thing by a third.
Will output from another AES website decrypt here?
No. Other sites use different key derivation and container layouts. Ciphertext from this page is needed for this page.
Is DES or Triple DES available?
No. Browser WebCrypto does not implement them and both are considered obsolete, so only AES-256 is offered.
Does encrypting the same text twice give the same result?
No. A fresh salt and initialisation vector are generated every run, so the ciphertext differs each time even with an identical password.