ciphers

Crates.iociphers
lib.rsciphers
version0.1.0
sourcesrc
created_at2019-08-25 08:37:29.656609
updated_at2019-08-25 08:37:29.656609
descriptionCipher implementation library.
homepage
repositoryhttps://github.com/sradley/ciphers
max_upload_size
id159513
size119,194
Stephen Radley (sradley)

documentation

https://docs.rs/ciphers

README

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.

[dependencies]
ciphers = "0.1.0"

3. Example Usage

E.g. using the Vigenere cipher.

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);
}
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
Commit count: 0

cargo fmt