AES encryption and decryption
AES-256-GCM with a passphrase, entirely in your browser.
Input
Result
The result will appear here.Encrypt a short piece of text with a passphrase and get one Base64 string you can send through any channel that carries text. The passphrase is stretched with PBKDF2 before it becomes a key, and the salt and nonce travel with the ciphertext, so decrypting later needs nothing but the same passphrase.
How it works
- AES-256-GCM, which authenticates as well as encrypts — altered ciphertext fails to decrypt rather than producing garbage.
- The passphrase goes through 210,000 rounds of PBKDF2-SHA-256, the current OWASP guidance.
- A fresh random salt and nonce per run, so encrypting the same text twice gives different output.
Where your data goes
Nowhere. This tool runs entirely in your browser: the text you paste is processed by the page and is never transmitted to a server or written to a log.
This tool handles keys and credentials, so nothing about a run is saved, not even to your own history.
What it costs
Free up to 20.0 KB per run without an account. Past that, a run costs 2 points and is saved to your history.
Points come from signing up, checking in daily, commenting and completing your profile.
See how points workCommon questions
- Why is the output different every time I encrypt the same text?
- Because the salt and nonce are random per run, which is required for security. Identical output for identical input would tell an observer that two messages are the same.
- I lost the passphrase. Can the text be recovered?
- No. There is no recovery path, by design. Nothing about your run is stored here, so there is nothing to recover it from.
- Can I decrypt something encrypted by another tool?
- Only if it used the same construction and the same layout of salt, nonce and ciphertext. This tool's format is its own; it is meant for round-tripping with itself.
The open-source behind it
This tool is a self-contained implementation. brix/crypto-js (MIT) does the same job as a library — if you need this behaviour inside your own program, start there rather than calling a web page.
brix/crypto-jsAlso known as
- aes encryption online
- aes 256 gcm
- encrypt text online
- decrypt aes
- text encryption tool