Ciphers v0.1.0

MIT licensed crates.io Released API docs

Ciphers is a Rust library that provides implementations of many different classical ciphers.

Get started by looking at the documentation.

1. Supported Ciphers

There are currently 16 different supported ciphers.

| Transposition | Monoalphabetic | Polyalphabetic | Polygraphic | Other | | ---------------------- | ------------------- | -------------- | ----------- | ------ | | Rail-fence | Simple Substitution | Vigenere | Playfair | ADFGX | | Columnar Transposition | Caesar | Beaufort | Four-Square | ADFGVX | | | Affine | Autokey | | | | | Polybius Square | Running Key | | | | | Atbash | Porta | | |

2. Installation

Simply put the following in your Cargo.toml.

toml [dependencies] ciphers = "0.1.0"

3. Example Usage

E.g. using the Vigenere cipher.

```rust use ciphers::{Cipher, Vigenere};

fn main() { let vigenere = Vigenere::new("examplekey");

// encipher
let ctext = vigenere.encipher("someexampletexthere").unwrap();
println!("ciphertext: {}", ctext);

// decipher
let ptext = vigenere.decipher(&ctext).unwrap();
println!("plaintext:  {}", ptext);

} ```

sh ciphertext: WLMQTIEWTJIQEJISIBI plaintext: SOMEEXAMPLETEXTHERE

4. To be Implemented

There are currently 6 different ciphers to be implemented.

| Transposition | Monoalphabetic | Polyalphabetic | Polygraphic | Other | | ------------- | -------------- | -------------- | ----------- | --------------------- | | | Rot13 | Gronsfeld | Hill | Bifid | | | | | | Trifid | | | | | | Straddle Checkerboard |