Solutions to the cryptopals.com challenges