Implementations of classical ciphers, along with methods to crack them