HandyTools Hub

AES Encryption Tool

Encrypt and decrypt text securely with a password — AES-GCM 256, fully client-side

Your password is turned into an AES-256 key with PBKDF2-SHA-256 (210,000 iterations) and a random salt. Use a long, unique password — it is never stored or sent anywhere.

How to Use

  1. Choose a mode — Select Encrypt to protect text or Decrypt to restore it.
  2. Enter your input — Paste the plain text (or the encrypted Base64 payload when decrypting).
  3. Enter a password — Use a long, unique password; it derives the encryption key and is never stored.
  4. Run and copy — Click Encrypt/Decrypt, then copy the result with one click.

Features

  • AES-GCM 256-bit encryption — Industry-standard authenticated encryption that detects tampering.
  • Strong key derivation — PBKDF2-SHA-256 with 210,000 iterations and a random salt turns your password into a key.
  • Fresh IV per encryption — Identical input never produces identical ciphertext.
  • 100% client-side — All cryptography happens in your browser via WebCrypto; no data leaves your device.
  • Full UTF-8 support — Encrypt text in any language, including emoji.

Use Cases

  • Private messaging: Encrypt a sensitive note and share the ciphertext over an insecure channel.
  • Config secrets: Obfuscate API keys or snippets before pasting them into tickets or chats.
  • Personal backups: Encrypt journal entries or recovery codes before storing them in the cloud.

Frequently Asked Questions

Is my password or text sent to a server?

No. This tool runs 100% in your browser using the WebCrypto API. Your text and password never leave your device, and nothing is stored or transmitted anywhere.

What encryption does this tool use?

AES-GCM with a 256-bit key derived from your password using PBKDF2-SHA-256 with 210,000 iterations and a random salt. Each encryption also uses a fresh random IV, so encrypting the same text twice produces different ciphertext.

Why do I get an error when decrypting?

AES-GCM is authenticated encryption, so decryption fails if the password is wrong or if even a single character of the payload was changed or lost. Make sure you copied the complete Base64 payload and are using the exact same password.