24 releases (breaking)
0.18.0 | Oct 3, 2019 |
---|---|
0.17.0 | Dec 9, 2018 |
0.16.0 | Nov 30, 2018 |
0.14.0 | May 21, 2018 |
0.8.0 | Jul 18, 2017 |
#5 in #classical
58 downloads per month
155KB
2.5K
SLoC
Cipher-crypt
A library of historic cryptographic algorithms implemented in rust.
Usage
Importing this crypt of ciphers is as easy as adding the following to your Cargo.toml:
[dependencies]
cipher-crypt = "^0.16"
Using the crate as such:
extern crate cipher_crypt;
use cipher_crypt::{Cipher, Caesar};
fn main(){
let m2 = "Attack at dawn 🗡️";
let c = Caesar::new(3);
assert_eq!(m2, c.decrypt(&c.encrypt(m2).unwrap()).unwrap());
}
Ciphers
The crypt only contains a few ciphers, but with time (and your help) it will have even more! A list of what is planned for the future and what is currently implemented is as follows.
- ADFGVX
- Affine
- Autokey
- Baconian
- Caesar
- Columnar Transposition
- Fractionated Morse
- Hill
- Playfair
- Polybius Square
- Porta
- Rail-fence
- ROT13
- Scytale
- Vigenère
- Bifid
- Four-Square
- Homophonic
- Straddle Checkerboard
- Trifid
Contributions
Contributions are extremely welcome. A good place to start would be helping to implement new algorithms. General cleanup and improvements of the code would also be greatly appreciated.
Disclaimer
There's a reason these archaic methods are no longer used - its because they are extremely easy to crack! Intended for learning purposes only, these ciphers should not be used to encrypt data of any real value.
Dependencies
~2MB
~29K SLoC