| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.txt | 2009-12-08 | 3.8 kB | |
| hcryptoj-0-5.jar | 2009-12-08 | 979.6 kB | |
| Totals: 2 Items | 983.4 kB | 0 | |
This directory contains version 0.5a of the HCryptoJ API.
Features
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:
- AffineAnalyzer -- automatically solves cryptograms created with an Affine cipher.
- CaesarAnalyzer -- automatically solves cryptograms created with a Caesar cipher.
- CryptogramAnalyzer -- automatically solves cryptograms created with simple substitution cipher.
- Histogram -- computes a frequency histogram for a message.
- IndexOfCoincidence -- computes the Index of Coincidence for a message.
- VigenereAnalyzer -- automatically solves Vigenere ciphers.
* 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 programthat 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 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.
To Compile the Source:
To compile all the files in ./source and store the classes in the
./classes, which must already exist, use the following command. This
assumes that you are presently in this directory.
javac -d classes -classpath src src/hcrypto/cipher/*.java \
src/hcrypto/provider/*.java src/hcrypto/engines/*.java \
src/hcrypto/analyzer/*.java src/applications/*.java \
src/applications/cryptotoolj/*.java src/pluginproviders/*.java
This command will create the following package structure within classes:
classes
|
-- applications
|
-- hcrypto
|
-- analyzer
|
-- cipher
|
-- engines
|
-- provider
|
-- pluginanalyzers
To run from the jar file:
java -classpath <path/to/your.jar> applications.TestCipher
java -classpath <path/to/your.jar> applications.FileCipher <args>
java -classpath <path/to/your.jar> applications.cryptotoolj.CryptoToolJ
To Create a JAR (Java ARchive) file containing all the classes within
the proper package structure from with the ./classes directory:
jar cvf <path/to/your.jar> hcrypto
To generate the JAVADOC documentation from the sourcecode:
javadoc -d docs -sourcepath src hcrypto.cipher hcrypto.engines \
hcrypto.provider hcrypto.analyzer pluginanalyzers applications