Browser / Node.js / Python

AES-GCM

Authenticated encryption, processed in your browser.

Have a password? Use the JSON format below. Have a key, IV and tag from another application? Choose Key and separate parameters.

New payloads use PBKDF2-SHA-256 with 600,000 iterations, a fresh 16-byte salt, a 12-byte IV and a 128-bit tag.

How to use this tool

Select Password and JSON or Key and separate parameters. Enter the required password or key before encrypting or decrypting. Copy or download only the authenticated result.

Try it: Load example, then Encrypt to JSON and Decrypt JSON to recover Hello from HashyTools. The example password is public and only for testing. Random salt and IV make each encrypted payload different.

Limit: Authentication failure may indicate a wrong password, key, AAD or altered payload. This tool is not a key manager. Inspect a payload · Node.js / Python examples · Test vectors

A portable AES-GCM payload, not a mystery string

Every binary value uses Base64URL. The tag is stored separately from the ciphertext, and the payload records its work factor. That makes the format inspectable and safe to evolve.

{
  "version": 2,
  "algorithm": "AES-256-GCM",
  "kdf": { "name": "PBKDF2", "hash": "SHA-256", "iterations": 600000, "salt": "..." },
  "iv": "...", "ciphertext": "...", "tag": "..."
}
Legacy token compatibility

Older HashyTools tokens use GCM.salt.iv.ciphertext or CBC.salt.iv.ciphertext with 150,000 PBKDF2 iterations. They remain available for migration, but new integrations should use the JSON format above and AES-GCM.

What runs locally

Cryptographic method reviewed August 31, 2026 against the Web Crypto API and the published deterministic interoperability vector.

Choose a developer tool

More tools for data, text and testing

Run the AES interoperability guide or read how these tools are checked.