CryptoPlayground icon

CryptoPlayground

Build cryptography by drawing it. Drag hashes, ciphers, signatures and key exchanges onto a canvas, connect them, and watch every value update instantly.

Version 1.0macOS 14.4 or later, Intel and Apple Silicon (28 MB)Windows 10 or 11, 64-bit (18 MB)Or in your browser, nothing to install

The CryptoPlayground model: two EC key pairs feed ECDH, HKDF derives an AES key, and AES-256-GCM encrypts a message
Drag, connect, see

Every output, live

Each element is a real operation — a hash, a cipher, a signature, a key exchange. The output of one becomes the input of the next. Change a byte anywhere and everything downstream is recalculated at once.

  • Real cryptographic results, not simulations
  • Clear messages when an input is missing or a key is wrong
  • Logic elements (equals, greater than, if / else) for verification flows
  • Undo and redo, projects saved as files
The Code view with the C++ program generated from the model
Textbook diagrams

The drawing from the paper — from your graph

The Diagram view redraws your graph in the notation of cryptography papers and textbooks: E, H, KeyGen, ⊕ and ‖, keys from the top, IVs and salts from below. Arrange boxes and lines by hand, add notes, leave helper steps out, and export as PNG or SVG.

Textbook diagram: KeyGen for Alice and Bob, DH, HKDF and encryption E with AES-256-GCM
Real code

C++ and Python, written for you

The Code view turns the graph into a complete program — in C++, or in Python with the cryptography package. Copy it into your project: it compiles, runs and produces the same results as the app.

# ECDH: shared secret
ecdh = load_private_key(alice_private).exchange(
    ec.ECDH(), load_public_key(bob_public))

# HKDF: AES key
key = HKDF(algorithm=hashes.SHA256(), length=32,
           salt=None, info="chat v1".encode()).derive(ecdh)

# AES Encrypt
nonce = os.urandom(12)
ctx = Cipher(algorithms.AES(key), modes.GCM(nonce)).encryptor()
ciphertext = ctx.update(b"Meet me at noon") + ctx.finalize()
Learn as you go

Every element explained

Select an element and the Info panel tells you what it does, what each input means and why it is needed, which standards define it, and what to watch out for — like never reusing a GCM nonce.

The Info panel explaining AES-256-GCM: rating, standards, how it works and its settings
121 elements

From SHA-256 to ML-KEM

Organized by technology, searchable, and dragged onto the canvas from the Elements panel.

#

Hash

29

SHA-1, SHA-2, SHA-3, SHAKE, BLAKE2, RIPEMD-160, SM3, MD5 and more.

AES

Symmetric ciphers

14

AES (GCM, CBC, CTR, …), ChaCha20-Poly1305, ARIA, Camellia, SM4, DES and legacy ciphers.

MAC

MAC

9

HMAC, CMAC, GMAC, KMAC, Poly1305, SipHash, BLAKE2 MAC.

KDF

Key derivation

4

HKDF, PBKDF2, scrypt and Argon2.

RSA

RSA

7

Key pairs, PKCS #1 v1.5 and PSS signatures, OAEP encryption, RSA KEM.

EC

Elliptic curves

18

ECDSA, EdDSA (Ed25519, Ed448), ECDH, X25519 / X448, DHKEM, SM2.

PQ

Post-quantum

9

ML-KEM (Kyber), ML-DSA (Dilithium) and SLH-DSA (SPHINCS+).

DH

Diffie–Hellman

2

Finite-field key pairs and key agreement.

KEY

Key tools

8

Convert keys between formats, extract raw bytes, inspect details, PKCS #12 export and import.

64

Encoding

7

Base64, hex, concatenate, XOR and slice.

IF

Logic

8

Equals, not equals, greater / less than, not, if / else.

IN

Sources & display

6

Text, hex, random bytes and your own private keys in; hex and text results out.

Standard formats

Keys the way other tools expect them

Paste a key from a test vector or a .pem file, convert between structures, and save any output to a file.

PEMDERPKCS #8SubjectPublicKeyInfoPKCS #1 SEC 1JWKPKCS #12 (.p12)Raw key bytes
Download

Get CryptoPlayground

On macOS, open the disk image and drag CryptoPlayground to your Applications folder. On Windows, run the installer. Or use it in your browser: it is the same app, and projects are saved as downloads.

macOS 14.4 or laterIntel and Apple Silicon, one app for both. Signed and notarized by Apple, opens without warnings
Windows 10 or 11, 64-bitNot code-signed yet: if Windows warns, choose More info, then Run anyway
Works offlineNo account, no network access, no data collected
Self-containedEverything included, nothing else to install