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.
AES-GCM with your application parameters
Use a 32-byte key, 12-byte IV and 16-byte tag. Choose each encoding explicitly. Inputs stay in this tab; nothing is uploaded or saved.
Each encryption generates a fresh random IV. The key is never included in the result download. Limit: 1 MiB each for message, ciphertext and AAD.
Encryption downloads JSON parameters without the key. Decryption downloads the authenticated original bytes as decrypted.bin.
Troubleshooting
Select Hex, Base64 or Base64URL to match the source. Do not paste a password as a raw key. Node.js usually returns a separate tag; Web Crypto appends the tag. AAD must match byte for byte. Authentication failure can mean a wrong key, IV, tag, ciphertext or AAD; it cannot identify which one. PBKDF2 derives a key from a password; it does not decrypt a hash.
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
- Your plaintext and passphrase stay in the browser.
- AES-GCM authenticates the ciphertext before plaintext is released.
- Associated data can bind visible metadata without encrypting it.
- This utility is for secure transport and test data, not password storage or key management.
Cryptographic method reviewed August 31, 2026 against the Web Crypto API and the published deterministic interoperability vector.
Choose a developer tool
- Hash generator
Generate MD5, SHA-1, and SHA-256 digests locally with Web Workers.
- Base64 encoder & decoder
Convert any text to or from Base64 without leaving your browser.
- JWT verifier
Decode claims and verify HMAC signatures without network calls.
- JSON formatter
Validate, format, and diff JSON without network calls.
More tools for data, text and testing
- XML formatter
Format, minify and convert XML to JSON locally.
- Regex tester
Experiment with regular expressions and capture groups locally.
- URL encoder and inspector
Encode components and inspect query parameters locally.
- UUID v4 generator
Create collision-resistant UUID v4 identifiers using Web Crypto.
- Secure password generator
Build strong passwords with custom length, charset, and entropy.
- Epoch time converter
Convert Unix timestamps into local, UTC and ISO dates.
- Text transformer
Convert case, slugify, and clean strings on-device.
- Color converter
Switch between HEX, RGB, HSL, and Tailwind palettes instantly.
- QR code builder
Design QR codes for text, Wi-Fi, contacts, email, or SMS locally.
- Barcode maker
Generate EAN and Code 128 barcodes and download crisp PNG output.
- IP lookup
Look up your public IP using disclosed external services.
- Lorem ipsum generator
Produce paragraphs, lists, and markdown filler text fast.
- Image compressor
Compress JPG, PNG, WebP and AVIF images to a target size in your browser. Preview results, process batches and download images individually or as a ZIP.
- Image converter
Convert WebP and AVIF images to JPG or PNG locally. Batch convert supported images, control quality and transparency, preview results and download a ZIP.
- JSON ↔ CSV
Convert JSON and NDJSON to CSV for Excel, or CSV to JSON, locally. Flatten nested objects, choose columns and delimiters, and download UTF-8 results.
- Base64 ↔ image
Decode Base64 or data URIs to an image preview and download, or encode an image file to Base64. Inspect dimensions and size without uploading your image.
- HEIC → JPG
Convert HEIC and HEIF photos to JPG or PNG in your browser. Choose quality, preview converted images and download individual photos or a batch ZIP.
- Base64 → PDF
Decode Base64 to PDF locally, preview pages with zoom and navigation, and download the decoded PDF. Supports raw Base64 and application/pdf data URIs.
Run the AES interoperability guide or read how these tools are checked.