1 unstable release
0.1.0 | Aug 25, 2019 |
---|
#2222 in Cryptography
39 downloads per month
72KB
964 lines
Ciphers v0.1.0
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 |