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)
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
- Choose "Encrypt", enter the text and type the password twice.
- Press "Encrypt" to get encrypted text starting with "YT1.". Copy or save it, and share the password through a different channel.
- 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
- OWASP Password Storage Cheat Sheet (PBKDF2-HMAC-SHA256: 600,000 iterations)(opens in a new tab) — Checked on: 2026-10-31
- NIST SP 800-38D: Galois/Counter Mode (GCM)(opens in a new tab) — Checked on: 2026-10-31
- RFC 8018: PKCS #5 v2.1 (PBKDF2)(opens in a new tab) — Checked on: 2026-10-31
- RFC 4648 §5: Base 64 Encoding with URL and Filename Safe Alphabet(opens in a new tab) — Checked on: 2026-10-31
- W3C Web Cryptography API(opens in a new tab) — Checked on: 2026-10-31
Related tools
- Secure Password Generator (cryptographic, unbiased)Create random passwords in your browser with a cryptographically secure, unbiased generator (crypto.getRandomValues). Choose length, character types and look-alike exclusion, and see the entropy.
- Password Strength Checker (guessability and crack time)Estimate how guessable a password is from its length, character types, common passwords, keyboard runs, sequences and dates, with crack-time ranges. Runs in your browser; nothing is sent or saved.
- UUID Generator and Inspector (bulk UUID v4)Generate up to 10,000 random version 4 UUIDs at once with crypto.randomUUID(), then copy them or save a TXT file. Paste any UUID to see its version, variant and embedded time.
- File Checksum Calculator (SHA-256 / SHA-512)Calculate SHA-256 and SHA-512 checksums of a file or text in your browser and check them against a published hash. Files are never uploaded.
- Personal Data Redaction for TextFind and mask email addresses, phone numbers, card numbers, Japanese My Number, Taiwan IDs, IP addresses and URLs in text. Runs entirely in your browser; nothing is sent or saved.
- Suspicious URL Structure Checker (@, IP, Punycode, short links)Paste a URL to list structural features such as “@” tricks, numeric IP hosts, Punycode and mixed scripts, URL shorteners and double extensions. It never opens the link and gives no safety verdict.