Cryptography studio

Hashes, keys
and digital trust

Web Crypto API · everything runs in your browser
One bit changed. A completely different digest.

Who it is for
Developers, students and security practitioners who need to choose or assess algorithms and TLS configurations.
Level
Beginner → intermediate
Duration
40–60 minutes
Prerequisites
Basic notions of bits, bytes and hexadecimal; a rough idea of what HTTPS is.

Learning objectives

  • Tell hashes, MACs, symmetric and asymmetric encryption apart, and know which problem each one solves.
  • Read a TLS 1.3 handshake and tell a modern configuration from an obsolete one.
  • Choose the right algorithm for passwords, data, signatures and key exchange, including post-quantum options.

The lab uses the browser's Web Crypto API: nothing you type leaves your computer. For the responsible use of the analysis tools see Ethics and law.

Lab

Hash forge

Type a message and watch the digest and the colour grid that represents it byte by byte. Change a single character and roughly half of the result changes.

crypto.subtle.digest
Digest

A hash guarantees integrity, not secrecy. Passwords need slow, salted functions such as Argon2id or bcrypt.

Three families

How information is protected

Each family solves a different problem: click a family to filter the catalogue.

Protocol

TLS 1.3 in a single round trip

The client already sends its share of the key exchange (key_share) in the ClientHello; the server replies with its own, and from then on everything is encrypted: certificate, handshake signature (CertificateVerify) and Finished. One round trip and ephemeral keys are enough, so there is forward secrecy.

Analyse a server with TLS certificate

Catalogue

Algorithms and protocols

Open a sheet to read the full technical description: history, formulas, pros and cons, and security assessment.

Practical security

Which tool for which problem

A quick guide to the choices: historical and technical details are in the catalogue sheets.

Use

  • User passwords → Argon2id (bcrypt as an alternative)
  • File and data integrity → SHA-256, SHA-512 or SHA-3
  • API tokens and signed cookies → HMAC-SHA256 or Ed25519
  • Data in transit → TLS 1.3 (or well-configured 1.2) with a valid certificate
  • Encrypted files and records → AES-GCM or ChaCha20-Poly1305 (whole disks: AES-XTS)
  • Key exchange → X25519 / ECDHE + HKDF; hybrid X25519MLKEM768 where available
  • Digital signatures → Ed25519, ECDSA P-256 or RSA ≥ 3072 bits (PSS); plan the move to ML-DSA

Avoid

  • MD5 / SHA-1 for passwords, signatures or critical integrity
  • Plain SHA-256 for passwords (too fast)
  • DES, 3DES, RC4: retired everywhere
  • AES-CBC without a MAC (padding oracle), AES in ECB mode
  • RSA key transport: no forward secrecy
  • SSL, TLS 1.0 and 1.1 and obsolete cipher suites
  • Reused nonces/IVs in any AEAD