Encrypt text and files with AES-256-GCM (authenticated encryption) or OpenSSL-compatible AES-256-CBC. Proper PBKDF2 key derivation, a fresh random salt for every encryption, chunked file support. 100% client-side — verify zero network requests in DevTools.
AES encryption explained simply: your password never encrypts anything directly. Instead, PBKDF2 stretches it into a 256-bit key (600,000 rounds of SHA-256 with a random salt), and AES-256 uses that key to scramble your data in 16-byte blocks. Change one bit of the key and the entire output changes — that is why the password, not the algorithm, is what attackers target.
Two modes, both fully documented — no mystery parameters:
NAES: magic + version + algorithm + KDF + iterations + salt + nonce, then length-prefixed chunks.openssl enc -aes-256-cbc -pbkdf2: Salted__ header + 8-byte salt, PBKDF2-SHA256 with 10,000 iterations (OpenSSL's default).Encrypted something here in OpenSSL-compatible mode? Decrypt it without this page:
openssl enc -d -aes-256-cbc -pbkdf2 -in encrypted.enc -out decrypted.bin
Or encrypt in your terminal and decrypt here (paste the base64 or upload the file):
openssl enc -aes-256-cbc -pbkdf2 -salt -in secret.txt -out secret.enc # add -a for base64 output you can paste into the Decrypt tab
Most "AES online" tools never tell you their mode, KDF, or iteration count. Here is what to demand — and what we do:
Encrypts each 16-byte block independently, so patterns survive encryption (the famous ECB penguin). Safe only for single random blocks. We never use ECB.
Reusing an IV in CBC leaks shared plaintext prefixes; in GCM a reused nonce is catastrophic — it destroys confidentiality and authenticity at once. We generate a fresh random salt + nonce for every encryption.
Hashing the password once with SHA-256 (or MD5) is not key derivation — GPUs try billions of guesses per second, and no salt means rainbow tables. We use PBKDF2-SHA256 with 600,000 iterations and a unique salt.
1,000 iterations (old OpenSSL default) falls to a modern GPU in hours. Iteration count is the work factor you impose on attackers. Ours: 600,000 (native) / 10,000 (OpenSSL-compat, matching openssl's default for interop).
CBC without a MAC lets attackers flip bits in your ciphertext (padding-oracle attacks). GCM authenticates every chunk — tampering fails closed.
| Feature | This tool | Typical online AES tools |
|---|---|---|
| Authenticated encryption (GCM) | Yes, default | Rarely — usually CBC or ECB |
| Documented KDF + iteration count | PBKDF2-SHA256, 600,000 | Often undisclosed |
| Fresh random salt per encryption | Yes, 16 bytes | Sometimes fixed or missing |
| OpenSSL CLI interoperability | Byte-identical format | No |
| File encryption (chunked) | Yes, 1 MB chunks + progress | Text only |
| Password strength meter | Entropy-based | No |
| Fully client-side, auditable | Zero network requests | Varies — check DevTools |
| No signup, free | Yes | Usually |
openssl on any Linux/Mac/Windows machine (or vice versa).AES-256 is the Advanced Encryption Standard with a 256-bit key — the symmetric cipher approved for top-secret data and used by governments, banks, and messaging apps worldwide. No practical attack exists against AES-256 itself; real-world failures always come from bad implementations (weak passwords, reused IVs, ECB mode), which is why this tool documents every parameter it uses.
Choose the File tab above, drop your file in, type a strong password, and click Encrypt. The file is encrypted in your browser in 1 MB chunks (so even gigabyte files work) and you download a .enc file. Decryption reverses the process with the same password.
Switch to the Decrypt tab, upload the .enc file (or paste base64 text), enter the same password, and click Decrypt. If the password is wrong or the data was tampered with, AES-GCM mode refuses to decrypt instead of returning garbage.
Use GCM (the default here). GCM is authenticated encryption: it encrypts and simultaneously proves the data was not tampered with. CBC alone does not detect tampering — flipped bits decrypt to different plaintext silently. CBC is offered here only in the OpenSSL-compatible format for interoperability with the openssl command line.
PBKDF2 turns your password into an encryption key by hashing it many times with a random salt. Each iteration costs an attacker the same work it costs you once. This tool uses 600,000 iterations of PBKDF2-SHA256 (the current OWASP recommendation); many online tools use 1,000–10,000, which modern GPUs chew through in hours.
No — not with any known technology. Brute-forcing a 256-bit key would take longer than the age of the universe. When "AES decryptors" claim otherwise, they mean guessing weak passwords, not breaking AES. Use a long, random password (the strength meter above estimates entropy in bits).
Encrypt in "AES-256-CBC (OpenSSL compatible)" mode, download the .enc file, then run: openssl enc -d -aes-256-cbc -pbkdf2 -in file.enc -out file.dec — OpenSSL will prompt for the password. The format is byte-identical to openssl enc output.
Yes. Run: openssl enc -aes-256-cbc -pbkdf2 -salt -in secret.txt -out secret.enc (add -a for base64 output), then paste or upload the result into the Decrypt tab of this page with the same password.
ECB encrypts each 16-byte block independently, so identical plaintext blocks produce identical ciphertext blocks — patterns in your data stay visible (the famous "ECB penguin"). It is only safe for single random blocks like keys. This tool never uses ECB.
In CBC mode, a reused IV leaks whether two messages share a prefix. In GCM mode it is catastrophic: nonce reuse destroys both confidentiality and authenticity. This tool generates a fresh random salt and IV/nonce for every single encryption — you never have to think about it.
Aim for at least 60–80 bits of entropy: roughly 5–6 random words, or 16+ random characters mixing cases, digits and symbols. The meter above shows your password's estimated entropy live. AES-256 is unbreakable, but a weak password makes that irrelevant.
Yes — the File tab encrypts any file type (image files such as JPG/PNG, PDFs, videos, archives) as raw bytes. Encryption works on bytes, not file types, so the format does not matter.
Yes. It runs entirely in your browser using the WebCrypto API, which works on all modern browsers on Mac, Linux, Windows, Android and iOS. No install needed.
Only if you can verify nothing leaves your browser. This page makes zero network requests after loading — open DevTools, watch the Network tab while encrypting, and confirm. That verifiability is the whole point; never trust an "online encryptor" you cannot audit this way.
"Salted__" is OpenSSL's file header: the 8 ASCII bytes "Salted__", followed by an 8-byte random salt, followed by the ciphertext. This tool's OpenSSL-compatible mode produces exactly that layout with PBKDF2-SHA256 key derivation, so the openssl command line can decrypt it directly.
Free tool by NRTechStudio
Explore similar security tools and calculators. 100% free, accurate, and runs completely in your browser without sign-up.
2 taps, no typing needed — diagnostics are sent automatically.