AES Encryption & Decryption — Text with a Password

Protect a note, secret or config value with a password using AES-256 — or decrypt text produced by openssl enc. Encryption happens on your device.

Runs in your browserUpdated

🔒 Runs locally with your browser’s Web Crypto API — nothing you type is sent to a server.

Your data never leaves your computer. All processing happens 100% locally in your browser.

How to use the AES Encrypt & Decrypt

  1. Choose Encrypt or Decrypt and the format.
  2. Enter a strong password.
  3. Paste the text and click the button.
  4. To decrypt later you need the same password and format — store the password safely.

Two formats

AES-256-GCM (default)OpenSSL AES-256-CBC
CipherAES-256 in Galois/Counter Mode — authenticatedAES-256 in CBC mode with PKCS#7 padding
Key derivationPBKDF2-SHA256, 600,000 iterations, 16-byte saltPBKDF2-SHA256, configurable iterations (OpenSSL default 10,000), 8-byte salt
Tamper detectionYes — modified data fails to decryptNo — only padding errors
Compatible withThis tool and any code that follows the documented layoutopenssl enc -aes-256-cbc -pbkdf2 -a

The GCM output is Base64(salt ‖ IV ‖ ciphertext ‖ tag), so the Web Crypto API, Node.js (crypto.createDecipheriv('aes-256-gcm', …)) or Python’s cryptography package can decrypt it with the same parameters.

Decrypting OpenSSL output

Text encrypted with

echo -n "secret" | openssl enc -aes-256-cbc -pbkdf2 -salt -a -A -pass pass:YOURPASS

starts with U2FsdGVkX1 (Base64 for “Salted__”) and can be decrypted here with the OpenSSL format. Without -pbkdf2, OpenSSL uses the old, weak EVP_BytesToKey derivation, which this tool does not support — always add -pbkdf2.

Password strength matters most

AES-256 itself cannot be brute-forced, but a weak password can. PBKDF2 slows each guess down, yet an 8-character password is still guessable. Use a long passphrase — the password generator helps. For one-way storage of passwords use bcrypt instead; for signatures use HMAC.

Tools that pair well with the AES Encrypt & Decrypt

  • Hash Generator — Compute MD5 and SHA hashes of any text or file instantly, create HMAC signatures, and paste an expected checksum to verify a download.
  • JWT Decoder — Paste a JSON Web Token to inspect its header and payload, check when it expires and verify its signature.
  • Htpasswd Generator — Generate user:hash lines for HTTP Basic Authentication in Apache, Nginx, Traefik and Caddy — with bcrypt by default and nothing sent to a server.
  • JWT Encoder — Build a JWT for testing APIs: edit the payload, add standard claims with one click and sign it with an HMAC secret or an RSA / EC private key.

Frequently asked questions

Is my text or password sent to a server?
No. Encryption and decryption use the Web Crypto API in your browser.
I forgot the password — can you recover the text?
No. Without the password the data cannot be decrypted by anyone, including us.
Why does every encryption produce different output?
A new random salt and IV are used each time. This is intended and all outputs decrypt with the same password.
Can I decrypt data from other AES tools?
Only if it uses one of the two documented formats. Other tools use different key derivation, modes or layouts.

Related tools