Text Encryption & Decryption (AES-256-GCM with a password)

Encrypt and decrypt text with a password using AES-256-GCM and PBKDF2 in your browser. Random salt and nonce, tamper detection, and nothing is sent or stored.

  • Runs in your browser (no upload)
Choose an action

A long passphrase (12+ characters, ideally several words) is best. If you forget it, nobody can decrypt the text.

Deriving the key (PBKDF2-HMAC-SHA-256, 600,000 iterations) can take a few seconds.

How to use

  1. Choose "Encrypt", enter the text and type the password twice.
  2. Press "Encrypt" to get encrypted text starting with "YT1.". Copy or save it, and share the password through a different channel.
  3. To read it, choose "Decrypt", paste the encrypted text, enter the password and press "Decrypt".

FAQ

Is my text or password sent anywhere?

No. Encryption and decryption run on this device with the browser’s built-in Web Crypto API. Text, passwords and encrypted output are never sent, stored or logged, and everything is gone when you close the page.

Can I decrypt if I forget the password?

No. There is no password recovery and no back door. For anything important, store the password somewhere safe (such as a password manager) before encrypting.

How secure is it?

It uses AES-256-GCM authenticated encryption. The key is derived from the password and a random 16-byte salt with PBKDF2-HMAC-SHA-256 at 600,000 iterations (the OWASP recommendation), and every encryption uses a fresh random nonce. Security still depends on the password: short or common passwords can be guessed by anyone who has the encrypted text.

Why does decryption fail?

Either the password differs (case, spaces and similar-looking characters count) or the encrypted text was changed or cut off. AES-GCM authentication detects even a one-character change, and then no content is shown at all.

What is the format?

"YT1.header.salt.nonce.ciphertext", each part base64url without padding. The header is 6 bytes: cipher id 1 = AES-256-GCM, KDF id 1 = PBKDF2-HMAC-SHA-256, iteration count as a 32-bit big-endian number. The salt is 16 bytes, the nonce 12 bytes, and the ciphertext ends with the 16-byte tag. Everything before the last "." is the additional authenticated data; the password is NFC-normalized UTF-8 and the text is UTF-8.

Is it compatible with OpenSSL or GPG?

Not directly, because the envelope format is specific to this tool. It only uses standard algorithms, though, so it can be decrypted elsewhere by implementing the description above.

Notes & limitations

  • What you enter is processed only on this page and is not sent to YUCTS servers.
  • If you forget the password, nobody can decrypt the text.
  • Up to 100,000 characters of text per encryption. Files are not supported.
  • Security depends on the password strength. It cannot protect against malware or keyloggers on your device, or someone watching your screen.
  • The output uses this tool’s own format (YT1) and is not directly compatible with OpenSSL or GPG.
  • Text and passwords are processed only in your browser and are never sent, stored or logged.

Data sources