Practical Cryptography Guides
Proof of Work: How Hash Puzzles Secure Blockchains
Learn how cryptographic hash puzzles, target thresholds, and difficulty adjustment secure decentralized blockchains.
Salting and Peppering: Why Plain Hashes Fail for Passwords
Understand why fast hashes like SHA-256 leave passwords exposed, and how random salts, peppers, and KDFs protect accounts.
Collision vs Pre-image Resistance: Core Hash Properties
Explore the 3 fundamental security properties of cryptographic hashes and why the Birthday Paradox dictates collision bounds.
Inside the Sponge Construction: How Keccak & SHA-3 Work
Discover how the sponge construction differs from Merkle-Damgård, eliminating length extension vulnerabilities with absorbing and squeezing.
How Digital Signatures Use Hashes: ECDSA, Ed25519 & RSA
Why signatures hash arbitrary-length messages into fixed digests before signing with asymmetric keys, preventing forgery and optimizing speed.
Understanding Rainbow Tables and Precomputation Attacks
Learn the mechanics of hash-reduction chains, space-time tradeoffs, and why cryptographic salting completely neutralizes lookup tables.
How to Verify File Integrity with SHA-256
Learn cryptographic file verification to detect tampering, supply-chain alterations, and corrupted downloads.
Understanding the Avalanche Effect
Discover why flipping a single bit creates a cascade flipping 50% of the entire cryptographic digest.
Why You Should Never Use MD5 for Security
Understand the mathematical chosen-prefix collision attacks that make MD5 completely unsafe for security applications.
Comparing Hash Algorithms: Speed, Security & Use Cases
Choose the right algorithm for your application: SHA-256 vs SHA-512 vs BLAKE3 vs SHA-3 tradeoffs.
How One Bit Change Affects the Hash
Visual, bit-level demonstration of cryptographic diffusion and why hash outputs look like pure entropy.
How to Verify a Bitcoin Transaction
Step-by-step cryptographic guide to verifying Bitcoin inputs, outputs, and transaction hashes.
Bitcoin Address Generation Explained
Learn how ECDSA public keys become Bitcoin base58check addresses through SHA-256 and RIPEMD-160.
Reading Bitcoin Block Headers
Understand the 80-byte block header structure, Merkle root, difficulty bits, and double-SHA-256 verification.
Hash Functions in the Real World
Explore ubiquitous practical applications from Git commits and BitTorrent swarms to password verification.
Common Hashing Mistakes to Avoid
Security pitfalls and critical engineering oversights when implementing cryptographic hash systems.
Using HMAC for Message Authentication
Learn how Keyed-Hash Message Authentication Code (HMAC) secures webhooks, API requests, and JWT tokens.
Detecting File Corruption with Checksums
Practical guide to using checksums for backup verification, data integrity audits, and silent corruption detection.
Understanding Git's Use of SHA-1
Explore how Git uses SHA-1 for content-addressable storage, object trees, commits, and the SHA-256 transition.
Password Hashing: What NOT to Do
Common catastrophic mistakes in credential storage: raw hashes, fast algorithms, static salts, and poor randomness.
Merkle Trees: Efficient Data Verification
Learn how Merkle trees enable logarithmic O(log n) cryptographic membership proofs in Git, Bitcoin, and Cassandra.
Cryptographic Tools
Live in-browser hash calculator, bit-level avalanche visualizer, speed benchmark tester, and blockchain block explorer.
100 Women in Computing
Learn about the pioneers behind algorithms, proof-of-work, zero-knowledge proofs, optimizing compilers, and processor design.