What is AES encryption?
AES is a symmetric block cipher: encryption and decryption use the same secret key. A key contains 128, 192 or 256 bits; its encoded text is not the key length. The cipher operates on 128-bit blocks, while its mode determines how messages, nonces and authentication are handled. This tool offers GCM, CBC and CTR, not every mode labelled AES on another website.
The default password profile uses PBKDF2-HMAC-SHA256 with 600,000 iterations and a fresh 16-byte salt to derive a 256-bit key. AES-GCM adds authentication with a 12-byte nonce and a 128-bit tag. This is a documented site format, not a promise that any AES ciphertext or another website's password format can be decrypted here.
How to use password encryption
- Enter the exact text. Spaces, Unicode and line endings are not intentionally trimmed or normalized.
- Select the password profile and enter a password. Public example data is for testing, not a password recommendation.
- Encrypt, then save the complete JSON package, not just its ciphertext field. Keep the password separately.
- Switch to Decrypt, paste the package and enter the same password. A changed tag, key or parameter prevents plaintext output.
A new salt and nonce are generated for every password encryption. The package saves their values, version, KDF parameters and ciphertext with its appended tag; it never saves the password or derived key. Losing the password cannot be repaired by the key generator.
When to use a raw key instead
Choose the compatibility profile only when the other system provides exact key bytes and mode parameters. Hex must contain 32, 48 or 64 digits for AES-128/192/256. Base64 must decode to 16, 24 or 32 bytes. UTF-8 is counted in bytes, so non-ASCII characters can consume more than one byte each.
GCM returns ciphertext followed by a 16-byte tag. CBC uses PKCS7 and a 16-byte IV; CTR uses a 16-byte counter with a fixed 64-bit counter field. CBC and CTR do not authenticate data. For raw encryption, Download saves ciphertext plus the displayed non-secret parameters in a JSON descriptor; keep the key separately. It is not an OpenSSL or CryptoJS password envelope.
Related tools and reading
- Decrypt text
- Encrypt a file
- Generate a key
- What Is AES Encryption? Keys, Blocks and Recovery
- AES-GCM vs CBC vs CTR: Authentication and Parameters
- AES-128 vs AES-192 vs AES-256: Bytes and Encodings
Technical references
Updated October 16, 2026
