HcryptoJ (Historical cryptology in Java) is a Java based programming library for implementing and analyzing historical ciphers. HcryptoJ is designed to support research and teaching in historical cryptography and computer science. Licensed under GPL.
- Extensible object-oriented design modeled after the Java Cryptography Extension (JCE).
- General enough to implement any symmetrical key cipher that maps plaintext to ciphertext.
- Supports encryption, decryption, and analysis of strings and ASCII files.
- Default Provider classes are supplied which contain implementations of Caesar, Simple Substitution (passphrase), Vigenere, Playfair, Affine, RailFence, and Transposition ciphers.
- All Cipher objects are defined with a Key class which can accomodate a wide range of key types.
- Supports a wide range of alphabets including: az, AZ, azAZ, azAZ09, printable ASCII and the full ASCII character set.
The most invaluable part, the CryptoGram Analyzer, is just skeleton code (function/interface definitions) with no actual working code behind them.