About AES Encrypt / Decrypt
Encrypt and decrypt text with AES-GCM 256-bit using a passphrase. The passphrase is stretched to a 256-bit key via PBKDF2 with a per-message random salt. Output is Base64 with the salt and IV prepended so the same tool decrypts on any machine. All crypto runs in your browser via the Web Crypto API.
When to reach for AES
AES is symmetric encryption — same key encrypts and decrypts. It is fast, well-studied, and the default for most “encrypt at rest” use cases. AES-GCM in particular is authenticated encryption: a wrong key or tampered ciphertext produces an error rather than garbage output. That property closes a large class of bugs.
Use this tool when you need to:
- Send a one-time secret over an unencrypted channel (DM, email)
- Store a small secret in a place you do not fully control
- Test a passphrase-derived encryption flow before writing code
For ongoing secret management, use a dedicated tool — Vault, 1Password, AWS Secrets Manager. They handle key rotation, audit logs, and access control that a one-shot encryption tool does not.
What the tool does, byte by byte
- Generate 16 random bytes (the salt).
- Stretch passphrase + salt to a 256-bit key via PBKDF2-SHA-256, 250,000 iterations.
- Generate 12 random bytes (the IV).
- Encrypt with AES-GCM-256 to get ciphertext + 16-byte authentication tag.
- Concatenate:
salt(16) || iv(12) || ciphertext || tag(16), Base64-encode.
Decryption reverses each step. A wrong passphrase fails at the auth-tag check — no plaintext leaks.
Common workflows
Share a one-time secret over Slack. Encrypt with a verbal passphrase, send the ciphertext, share the passphrase out-of-band. Recipient decrypts in their browser.
Store a config token in a non-secure location. Encrypt before commit, decrypt at runtime. The repo carries ciphertext; the operator carries the passphrase.
Test your encryption code. Verify byte-for-byte against the same algorithm in a different language. PBKDF2 + AES-GCM is portable across every modern crypto library.
Why local
Encryption tools that run on a server defeat their own purpose. Whoever runs the server can intercept the plaintext and store the passphrase. This tool runs entirely in your browser via Web Crypto. Open DevTools → Network → confirm: zero requests during encrypt or decrypt.
Frequently asked questions
Is AES-GCM secure?
How is my passphrase turned into a key?
Are my messages stored?
Can I decrypt with another tool?
Is this safe for storing secrets long-term?
Related tools
Last updated: 2025-01-15