Text encrypt

Encrypt or decrypt text with a passphrase (AES-256-GCM) and get a copy-pasteable token. Runs in your browser; the text and passphrase never leave your device.

Result

About this tool

Text encrypt locks a piece of text behind a passphrase using AES-256-GCM authenticated encryption, and gives you back a compact base64 token you can paste into an email, a note, or a chat. Anyone with the token and the passphrase can decrypt it; without the passphrase it's unreadable.

How it works

The passphrase is stretched into a 256-bit key with PBKDF2-HMAC-SHA256 (200,000 iterations). Each encryption uses a fresh random salt and nonce, so encrypting the same text twice produces different tokens. The token is self-describing (salt | nonce | ciphertext+tag), so only the passphrase is needed to decrypt. A wrong passphrase or a tampered token fails cleanly — the GCM authentication tag won't verify.

Privacy

Everything runs in your browser via WebAssembly — the text and passphrase are never uploaded to a server. You can also run it from the gizza CLI or inside a gizza chat.

Notes

Your security depends on the strength of your passphrase — use a long, unique one. To encrypt whole files instead of text, see the file-encryption tool.

FAQ

Why do I get a different token each time I encrypt the same text?

That's intentional: every encryption draws a fresh random salt and nonce, so identical inputs produce different tokens. All of them decrypt to the same text with the same passphrase — and the randomness prevents anyone spotting that two tokens hide the same message.

I lost the passphrase — can the text be recovered?

No. The 256-bit key exists only while your passphrase is being used; nothing is stored anywhere, and there is no reset or backdoor. Without the exact passphrase, the GCM authentication check fails and decryption returns an error, not partial text.

Can I decrypt a token on another device, or does it expire?

Tokens never expire and aren't tied to a device. The token embeds its own salt and nonce (salt | nonce | ciphertext+tag), so this page, the gizza CLI, or a gizza chat can decrypt it anywhere — just note it's this tool's format, not a generic OpenSSL container.

Does the 200,000-iteration key stretching make a weak passphrase safe?

It helps — PBKDF2-HMAC-SHA256 at 200,000 iterations makes each guess much more expensive — but it can't rescue "hunter2". A short or common passphrase is still brute-forceable offline; a long, unique phrase is what actually protects the token.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool text-encrypt "Text to encrypt, or a token to decrypt" 'passphrase=A strong passphrase'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/text-encrypt/?text=Text%20to%20encrypt%2C%20or%20a%20token%20to%20decrypt&passphrase=A%20strong%20passphrase&mode=encrypt

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.