Java Cryptography by Jonathan Knudsen