cryptopals.com
The Cryptopals Crypto Challenges are a collection of exercises demonstrating attacks on real-world cryptography, derived from weaknesses in real-world systems and modern cryptographic constructions. The eight sets become progressively harder, and proficiency in any programming language is required.