MD5 is a hash algorithm that produces a 128-bit digest. Although an ideal 128-bit hash would require about 2^64 steps for a birthday collision, practical collision attacks reduce this to about 2^18 steps, making MD5 cryptographically broken. section 6.2 section 6.4.1
Collision attacks against MD5 work because:
- Attackers generate distinct inputs whose digests match, defeating collision resistance. section 6.2
- A matching pair can share the same appended data while preserving the collision. section 6.4.1
- Structured formats such as PNG, JPG, and ZIP can hide different active data behind collision blocks. section 6.4.1
Two files with one digest
A collision block can encode either a short or long comment length. One file exposes data A after the short comment; another skips that data and exposes data B, while both files retain the same MD5 digest. section 6.4.1


