Crate cipher_crypt [] [src]

A cryptographic tomb of ciphers forgotten by time.

Example usage

extern crate cipher_crypt;

use cipher_crypt::{Cipher, Caesar, ROT13};

fn main(){
  let m1 = "I am my own inverse";
  assert_eq!(m1, ROT13::apply(&ROT13::apply(m1)));

  let m2 = "Attack at dawn 🗡️";
  let c = Caesar::new(3).unwrap();
  assert_eq!(m2, c.decrypt(&c.encrypt(m2).unwrap()).unwrap());


There's a reason these archaic methods are no longer used - it's 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.


pub use caesar::Caesar;
pub use vigenere::Vigenere;
pub use railfence::Railfence;
pub use rot13 as ROT13;
pub use hill::Hill;
pub use fractionated_morse::FractionatedMorse;
pub use autokey::Autokey;
pub use affine::Affine;
pub use polybius::Polybius;
pub use scytale::Scytale;
pub use columnar_transposition::ColumnarTransposition;
pub use adfgvx::ADFGVX;



The ADFGVX cipher was a field cipher used by the German Army on the Western Front during World War I.


The Affine cipher is a special case of the more general monoalphabetic substitution cipher.


An autokey cipher (also known as the autoclave cipher) is a cipher which incorporates the message (the plaintext) into the key.


The Caesar cipher is named after Julius Caesar, who used it (allegedly) with a shift of three to protect messages of military significance.


The Columnar cipher is a transposition cipher. In columnar transposition the message is written out in rows of a fixed length, and then transcribed to a message via the columns. The columns are scrambled based on a secret key.


The Fractionated Morse cipher builds upon Morse code, a well-known method for encoding text which can then be sent across simple visual or audio channels.


In classical cryptography, the Hill cipher is a polygraphic substitution cipher based on linear algebra.


The Polybius square, also known as the Polybius checkerboard, is a device invented by the Ancient Greek historian and scholar Polybius, for fractionating plaintext characters so that they can be represented by a smaller set of symbols.


The Railfence Cipher is a transposition cipher. It has a very low keyspace and is therefore incredibly insecure.


ROT13 ("rotate by 13 places"), is a simple implementation of the Caesar cipher. It substitutes a letter with the one 13 places after it in the alphabet.


One of the oldest cryptography tools was a scytale, which was used to perform transposition encryption. It consisted of a cylinder with a strip of parchment (containing a message) wound around it.


The Vigenère Cipher is a polyalphabetic substitution cipher. It was considered 'le chiffre indéchiffrable' for 300 years until Friedrich Kasiski broke it in 1863.