Properties (Unkeyed)
One-Way: Easy $H(x) \to h$, hard $h \to x$ (preimage resistance)
Collision Resistance: Hard to find $x_1 \neq x_2$ with $H(x_1) = H(x_2)$
Second Preimage: Given $x$, hard to find $x' \neq x$ with $H(x') = H(x)$
Avalanche Effect: Small input change → large output change
Common Functions
MD5: 128-bit output (BROKEN, don't use)
SHA-1: 160-bit output (deprecated)
SHA-2: SHA-256, SHA-512 (secure)
SHA-3: Keccak-based, latest standard
Merkle-Damgård Construction
Iterative: $h_i = f(h_{i-1}, m_i)$, output $h_n$
Length extension attack possible on MD5, SHA-1, SHA-2