HcryptoJ Features v1.3

HCryptoJ is a Java Application Programming Interface (API) for historical cryptography. It is modelled after the Java Cryptography Extension (JCE).

Encryption/Decryption

Supports the encryption of strings (Java String objects) or ASCII files.

Ciphers

Can be used to implement any historical cipher that can be defined as a function from a String to a String.

Default Ciphers

Default Provider classes are supplied which contain implementations of Caesar, Simple Substitution (passphrase), Vigenere, Playfair, Affine, RailFence, and Transposition ciphers.

Keys

All Cipher objects are defined with a Key class which can accomodate a wide range of key types.

Alphabets

Supports a wide range of alphabets including: az, AZ, azAZ, azAZ09, printable ASCII and the full ASCII character set.

Analyzers

The hcrypto.analyzer package contains a variety of classes to analyze historical ciphers, including:

Applications

HcryptoJ comes with a couple of very simple applications that illustrate how to use it. TestCipher is a command-line test program which encrypts or decrypts a string entered on the command line. FileCipher is a command-line program that encrypts or decrypts a file named on the command line. CryptoToolJ is a GUI program that encrypts and decrypts text entered interactively or via File I/O. CryptoAppletJ is a Java applet that supports interactive encryption/decryption of text for Java 1.1 enabled browsers.

Service Providers

Like the JCE, HcryptoJ enables cryptographic service providers to develop their own implementations of a new or existing cipher. A service provider can install a cipher algorithm by defining a Cipher subclass, a HistoricalKey subclass and a Provider subclass.

Object Oriented Design

HcryptoJ is modeled after the JCE and is organized into three packages. For details on the design, see the online documentation.