We use cookies.This website uses essential cookies to operate core features. With your consent, we also use analytics cookies to understand traffic and improve the service. For more details, see our .
Was this tool helpful to use?
Your feedback helps us make it better
Compare AES inputs and outputs using raw keys, configurable modes and padding for learning or compatibility checks.
Please enter content and click Encrypt/Decrypt.
Overview
Understand what the tool solves, how it works, and the boundaries of its data.
This AES encrypt/decrypt page is suited to learning and compatibility checks with test data. It accepts UTF-8 text to encrypt and shows the ciphertext as both Base64 and Hex. For decryption, choose whether the pasted ciphertext is Base64 or Hex; the result includes readable text plus Base64 and Hex views of the decrypted bytes. These encodings are ways to write bytes as text. They do not change the encryption.
AES is a symmetric block cipher: the same secret key is used to encrypt and decrypt. NIST defines AES-128, AES-192, and AES-256. The number names the key length, while every AES version processes 128-bit (16-byte) blocks. A match therefore depends on more than choosing “AES”: the key bytes, mode, padding, IV and ciphertext encoding must also agree.
The key can be interpreted as UTF-8 text, Hex, or Base64. The chosen AES size must match the decoded key length: AES-128 takes 16 bytes, AES-192 takes 24, and AES-256 takes 32. In Hex, that is 32, 48, or 64 valid hexadecimal characters. For text keys, count the UTF-8 bytes rather than visible characters; a non-ASCII character can occupy more than one byte. Base64 is decoded before its byte length is checked. The page does not derive a key from a password, so a short passphrase is not automatically expanded into a valid AES key.
The available AES modes are ECB, CBC, CFB, OFB, and CTR; the available padding choices are PKCS7, Zero Padding, No Padding, ISO 10126, and ANSI X.923. They are separate settings and both sides of a compatibility check need the same selection. The NIST descriptions of these five modes are in SP 800-38A; AES key and block sizes are specified by FIPS 197.
Guide
Follow the workflow and verify inputs and outputs with practical examples.
Confirm the AES key size, key representation, mode, padding, IV representation, and ciphertext encoding from the protocol or test fixture. “AES-256” alone does not specify a complete recipe.
Choose Text, Hex, or Base64 to match how the key is supplied. Check the resulting byte count against the selected AES size. For a repeatable test, use a dedicated test key rather than a production secret.
ECB has no IV. CBC, CFB, OFB, and CTR show an IV input. AES uses a 16-byte block, so a manually supplied IV or initial counter block must represent 16 bytes: 32 Hex characters or Base64 that decodes to 16 bytes. The form offers Hex and Base64 but does not validate this length; confirm it yourself against the protocol. If encryption generates an IV automatically, record the displayed value separately.
Encryption takes UTF-8 text and returns Base64 and Hex ciphertext. Decryption takes ciphertext in the selected Base64 or Hex format and returns text and both byte encodings. Compare the Hex bytes with the other implementation when diagnosing formatting differences, and keep the mode, padding, key, and IV unchanged for the reverse check.
Padding controls how data is fitted to a mode's requirements; it is not another encryption layer. No Padding requires the input length to meet the selected mode's rules. For CBC with AES, that means complete 16-byte blocks. Never assume another application's default padding or ciphertext wrapper matches this page.
Use cases
See how the tool fits into real work and everyday tasks.
When two systems both claim AES-CBC, use a harmless shared test vector and explicitly align raw key bytes, IV, padding, and Base64/Hex interpretation. A matching ciphertext is evidence that this test case agrees; it does not establish that either system is configured safely for production.
Keep a sample message and test key fixed, then change one supported mode or padding option at a time. With an IV-based mode, a different IV normally changes the ciphertext. Save the settings alongside each result so the comparison can be repeated.
For a small non-sensitive sample with a known plaintext, compare candidate key formats, modes, padding, and IV values against the documented legacy settings. A plausible-looking text result alone is not proof that a whole dataset decrypted correctly.
Q&A
Find concise answers to common questions and confusing cases.
In CBC, CFB, OFB, or CTR, auto-generation can use a different IV for each encryption. That changes the result. For a compatibility test, set the same documented test IV on both sides and compare the resulting bytes.
Only if its selected representation already decodes to exactly 16, 24, or 32 bytes for the chosen AES size. This page does not perform password-based key derivation, so it is not a password-to-key converter.
The displayed text is interpreted as UTF-8. If the original plaintext was binary data or used another character encoding, the text view may be unreadable; compare the returned Hex or Base64 bytes and check the data format expected by the other system.
No. The available AES modes do not provide an authentication tag here, so a result is not proof that the ciphertext was not altered. OWASP recommends authenticated encryption where available and separate authentication for CBC or CTR when they are used to protect data; see the OWASP Cryptographic Storage Cheat Sheet.
Notes
Review scope, result limitations, and important precautions before use.
The supported list does not include GCM or another authenticated mode, and these outputs contain no authentication tag. The page is intended for learning and compatibility checks, not as a complete production data-protection design.
Related
Discover related tools, collections, and available API capabilities.