Encrypt / Decrypt Text Online
AES encryption, SHA/MD5 hashing, and Base64/Hex/ROT13, all client-side via the Web Crypto API.
AES encryption runs through the Web Crypto API inside a dedicated Web Worker (workers/crypto.worker.ts), keeping the main thread responsive. Keys are generated or derived in-browser and cleared when the tab closes; they never leave your device and are never logged or transmitted anywhere.
Encrypt / Decrypt
All operations run in your browser. Keys never leave your device.
Disclaimer: This tool is provided for lawful, personal use only. Do not use it to encrypt illegal content, circumvent security controls, or violate any applicable law. No warranty is provided. For production security systems, use audited, purpose-built cryptographic solutions.
Minimum 8 characters. Keys are processed in your browser only. We never see or store them.
Identify a Hash
Paste an unknown hash to see which algorithms it could be, guessed from its length and format. This is a guess, not a proof: several algorithms can share the same digest length.
AES (Advanced Encryption Standard) is a symmetric cipher: the same key encrypts and decrypts. GCM mode additionally authenticates the ciphertext, so tampering is detected on decrypt; use it over CBC when you have the choice. AES-256 uses a longer key than AES-128 for a larger security margin.
SHA-256 and SHA-512 are one-way hash functions: they produce a fixed-length fingerprint of the input and cannot be reversed, which makes them suitable for integrity checks and password-derived lookups (with proper salting). SHA-1 and MD5 are older hash functions with known collision weaknesses, fine for checksums, not for security-sensitive use. Base64 and hex encoding are reversible text representations, not encryption: they make binary data safe to transmit as text, nothing more. ROT13 is a simple letter-substitution cipher with no real security, useful only for obscuring spoilers.
AES-GCM vs. AES-CBC: Which Should You Use?
Both modes encrypt data with the same AES block cipher, but they differ in how they turn that cipher into something you can use on real messages, and that difference matters for security.
AES-CBC (Cipher Block Chaining) splits your plaintext into fixed-size blocks and XORs each block with the previous ciphertext block before encrypting, using a random initialisation vector (IV) to seed the chain. It hides patterns in the plaintext well, but CBC on its own provides no way to tell whether the ciphertext has been tampered with: a modified byte will decrypt into a different message rather than fail outright, an issue known as a lack of authentication.
AES-GCM (Galois/Counter Mode) combines encryption with a built-in authentication tag. When you decrypt, the tag is verified first: if the ciphertext, IV, or associated data has been altered in any way, decryption fails outright instead of silently producing corrupted plaintext. This property, called authenticated encryption, is why GCM is the modern default for most new systems: it protects both confidentiality and integrity in one pass, with no separate MAC step required.
In practice: reach for AES-256-GCMunless you're interoperating with a system that specifically requires CBC. This tool generates a fresh, random IV for every operation. Never reuse an IV with the same key, as doing so can catastrophically weaken both modes.
The “128” and “256” in AES-128 and AES-256 refer to key length, not block size: AES always operates on 128-bit blocks regardless of key size. A longer key means more possible key values for an attacker to search through, which is why AES-256 is generally preferred for data that needs to remain confidential for a long time or against well-resourced attackers, while AES-128 is already considered secure against any currently known practical attack and remains faster in software that lacks hardware AES acceleration.
It's worth being explicit about what this tool is and isn't for. It's built for testing an implementation against known inputs, understanding how a given mode behaves, or quickly encrypting a value you're about to hand to a colleague over a channel you don't fully trust. It is not a substitute for a proper key management system in a production application; a real system needs to think about where keys are stored, how they're rotated, and who can access them, none of which a browser-based tool can solve on its own since nothing here persists a key between visits.
Common Use Cases
Sharing a secret over an untrusted channel
Encrypting a value with a key you agree on separately (over the phone, in person) before pasting the ciphertext into chat or email keeps the plaintext out of that channel's logs and history.
Sanity-checking an AES implementation
Running a known plaintext and key through this tool and comparing the output against your own code's result is a quick way to catch an implementation bug, a wrong mode, or a padding mismatch before it ships.
Checksums for file or data integrity
Hashing a file's contents with SHA-256 and comparing the result against a published checksum confirms a download wasn't corrupted or tampered with in transit.
Obscuring a value before it lands in a ticket or chat
Base64 or Hex encoding won't protect a secret from anyone who wants to read it, but it does stop it from being casually readable in a screenshot or a quick scroll through a support ticket.
Frequently Asked Questions
Does my encryption key or plaintext ever leave my device?
No. All cryptographic operations run in a Web Worker inside your browser using the native Web Crypto API. Nothing is transmitted to any server.
What is the difference between AES-GCM and AES-CBC?
AES-GCM provides authenticated encryption: it detects any tampering with the ciphertext and refuses to decrypt a modified message. AES-CBC encrypts the data but does not verify integrity on its own. Prefer AES-GCM unless you have a specific reason to use CBC.
Why do MD5 and SHA-1 show a warning?
Both algorithms have known collision vulnerabilities and are considered cryptographically broken for security-sensitive applications. They remain useful for non-security checksums but should not be used for password hashing, digital signatures, or data integrity where an adversary is involved.
What is ROT13?
ROT13 shifts each letter 13 positions in the alphabet. It is not encryption, since it provides no security and is trivially reversible. It is useful for obscuring spoilers or puzzle answers in plain text.
Further Reading
AES-CBC vs AES-GCM: Choosing an AES Mode
Block cipher modes explained, and why GCM is the better default over CBC for most new work.
AES Encryption Explained for Developers Who Just Need It to Work
A plain-language introduction to AES encryption for developers who need to use it correctly without getting a cryptography degree first.
Where to Safely Store an AES Encryption Key (and Where Not To)
A practical comparison of localStorage, sessionStorage, environment variables, and secrets managers for storing AES encryption keys, and why most of the obvious options are wrong.
AES vs RSA: When to Use Symmetric vs Asymmetric Encryption
How symmetric and asymmetric encryption differ, why real systems use both together, and how to pick the right one for a given problem.
SHA-256 vs MD5: Why One Is Still Fine and the Other Isn’t
A straightforward comparison of SHA-256 and MD5: why MD5 is broken for security purposes, why it still shows up in checksums, and when SHA-256 is the right call instead.
Base64 Is Not Encryption: A Common Security Mistake Explained
Why encoding a value with Base64 provides zero confidentiality, why developers keep making this mistake anyway, and what to use instead.