Web Crypto API Key, Cipher & Signature Tester

The Web Crypto API (crypto.subtle) powers browser-based encryption, but its Promise-driven, ArrayBuffer-heavy interface is verbose and hard to experiment with. This playground lets you generate keys, encrypt/decrypt, and sign/verify using native browser cryptography — no boilerplate, no server.

Privacy, Security & Web APIs 100% Air-Gapped All crypto runs in your browser's secure context. Keys never leave memory.

Tool interface

Introduction

The Web Crypto API enables end-to-end encryption, token signing, and secure storage directly in the browser — but experimenting with it usually means writing dozens of lines of boilerplate to convert between ArrayBuffers, Base64, and JWK. This playground removes that friction.

How It Works

  • Generate: Calls crypto.subtle.generateKey() and exports keys as JWK or Base64.
  • Encrypt/Decrypt: AES-GCM generates a random 12-byte IV; RSA-OAEP uses the public key. Decryption reverses the process.
  • Sign/Verify: ECDSA and RSA-PSS sign the UTF-8 encoded data and produce a Base64 signature; verification recomputes and compares.

Privacy

All cryptographic operations run in your browser's secure context via crypto.subtle. Keys, plaintext, and ciphertext exist only in memory and are never transmitted. Zero network calls.

Limitations

  • Legacy algorithms (DES, RC4, MD5) are not supported — they are intentionally excluded from crypto.subtle.
  • Keys exist only in memory; refreshing the page discards them. Copy exported keys to persist.
  • For production key management, use a proper KMS or secure enclave — this tool is for testing and learning.

FAQ

Why does AES-GCM need an IV?

The IV (initialization vector) ensures the same plaintext encrypts to different ciphertext each time. Reusing an IV with the same key in GCM mode completely breaks confidentiality and authenticity.

What's the difference between RSA-OAEP and RSA-PSS?

RSA-OAEP is for encryption/decryption. RSA-PSS is for digital signatures. They use different padding schemes optimized for their purpose.

Are my keys uploaded?

No. Everything runs locally in your browser via crypto.subtle. Nothing is transmitted.

Related Tools

Version and changelog

  • Version: 1.0.0
  • Last updated: August 13, 2026
  • Changelog: Initial production release.