← All tools

Text encryptor

Encrypt text or a password with a secret key, and decrypt it back. AES-256 · in your browser

How it works & the fine print

Your key is run through PBKDF2 (200,000 rounds, SHA-256) to derive an AES-256-GCM key, with a random salt and nonce each time. The output is the salt + nonce + ciphertext, Base64-encoded. Everything happens in your browser — the text and key are never uploaded.

Important: there is no recovery. If you lose the key, the text is gone — that's the point. Keep the key somewhere safe.

How to use the text encryptor

  1. Type or paste your message into the Text box and enter a secret key — any passphrase you can reliably remember or share.
  2. Click Encrypt to get one Base64 blob containing a fresh random salt, nonce and the AES-256-GCM ciphertext.
  3. Copy the blob and store or send it anywhere — email, chat, a note app. Without the passphrase it's meaningless text.
  4. To read it back, paste the blob into the same Text box, enter the same passphrase, and click Decrypt.
  5. “Wrong key, or the data is corrupted” means the passphrase didn't match or the blob was altered — tampering fails loudly instead of producing garbage.

Common uses

  • Send a secret over an insecure channel: email the encrypted blob, then share the passphrase by a different route, like a phone call or an in-person note.
  • Keep one sensitive paragraph — recovery codes, a server credential, an account number — inside an otherwise ordinary document in Google Drive, Notion or a wiki.
  • Store private notes in plain-text systems that sync everywhere but encrypt nothing, like a .txt file in Dropbox or a code repository.
  • Protect a diary entry or draft you don't want readable if someone opens your laptop or phone backups.
  • Hand off credentials during a project: encrypt once, post the blob in the ticket, and tell the passphrase only to the person who needs it.

Tips & limitations

  • The encryption is only as strong as the passphrase. PBKDF2's 200,000 rounds slow down guessing, but a short or common passphrase still falls quickly — use a long one (the password generator's word mode is ideal).
  • Copy the whole blob — if an email client wraps or trims a single character, decryption fails. Expect it to be roughly a third longer than the original text.
  • There is no recovery — no reset link, no backdoor, no server copy. Losing the passphrase means losing the text; store it as carefully as the secret itself.
  • Text only: it encrypts what's in the box, not files or images. For sending a small confidential file, the one-time link tool encrypts up to 3 MB in the same browser-side way.
  • Encryption requires a secure context — if the page isn't served over HTTPS, the browser blocks Web Crypto and the tool will tell you.

How it's built & why it's safe

Encryption uses AES-256-GCM through the browser's Web Crypto API (crypto.subtle). Your passphrase never becomes the key directly: it's run through PBKDF2 with 200,000 iterations of SHA-256 and a random 16-byte salt, which makes brute-forcing each guess expensive. A random 12-byte nonce is generated per encryption with crypto.getRandomValues, and salt + nonce + ciphertext are packed into one Base64 string. Everything runs locally — the text, the passphrase and the key never leave your browser, which is also why nobody, including us, can recover a lost passphrase.

Related tools: One Time Link · Password Generator · Base64 Encoder / Decoder

Further reading: How to share a password or secret safely · What makes a password strong? Entropy, length and passphrases

Frequently asked questions

How exactly is my text encrypted?

With AES-256-GCM, the same authenticated encryption used across the modern web. Your passphrase is stretched into a 256-bit key by PBKDF2 with 200,000 iterations of SHA-256 and a random salt, and a fresh random nonce is used for every encryption.

Why do I get a different blob every time I encrypt the same text?

Each encryption generates a new random 16-byte salt and 12-byte nonce, and both are packed into the output. That's deliberate and good practice — identical messages shouldn't produce identical ciphertext. Any of the blobs decrypts fine with the right passphrase.

Can I recover my text if I forget the passphrase?

No. There is no account, no server copy and no backdoor — the key is derived from your passphrase on your device and exists nowhere else. If the passphrase is gone, the only path back is guessing it.

Is my text or passphrase uploaded anywhere?

No. Encryption and decryption run entirely in your browser with the Web Crypto API; nothing is transmitted or stored, and the passphrase never exists outside your machine.

What happens if someone tampers with the encrypted blob?

Decryption fails with an error instead of returning altered text. AES-GCM includes an authentication tag, so any modification — even one flipped character — is detected. The same error appears for a wrong passphrase.

Is Base64 the encryption?

No — Base64 is just packaging that makes the encrypted bytes safe to paste into email and chat. Anyone can decode Base64, but what's inside is AES-256-GCM ciphertext, which is unreadable without the key derived from your passphrase.