playfair_cipher

Implementation of the PlayFair cipher - nothing special, nothing useful, just for fun.

Do not use them to crypt data of any value, since both of them are pre computer ciphers and so today very vulnerable.

Encrypt

```rust use playfaircipher::{playfair::PlayFairKey, errors::CharNotInKeyError}; use crate::playfaircipher::playfair::Cypher;

let pfc = PlayFairKey::new("playfair example"); match pfc.encrypt("hide the gold in the tree stump") { Ok(crypt) => { assert_eq!(crypt, "BMODZBXDNABEKUDMUIXMMOUVIF"); } Err(e) => panic!("CharNotInKeyError {}", e), }; ```

Decrypt

```rust use playfaircipher::playfair::PlayFairKey as PlayFairKey; use playfaircipher::errors::CharNotInKeyError as CharNotInKeyError; use crate::playfair_cipher::playfair::Cypher;

let pfc = PlayFairKey::new("playfair example"); match pfc.decrypt("BMODZBXDNABEKUDMUIXMMOUVIF") { Ok(crypt) => { assert_eq!(crypt, "HIDETHEGOLDINTHETREXESTUMP"); } Err(e) => panic!("CharNotInKeyError {}", e), }; ```

foursquareciper

Implementation of the PlayFair cipher - nothing special, nothing useful, just for fun.

Encrypt

```rust use playfaircipher::{foursquare::FourSquare, errors::CharNotInKeyError}; use crate::playfair_cipher::playfair::Cypher;

let fsq = FourSquare::new("EXAMPLE", "KEYWORD"); match fsq.encrypt("joe") { Ok(crypt) => { assert_eq!(crypt, "DIAZ"); } Err(e) => panic!("CharNotInKeyError {}", e), }; ```

Decrypt

```rust use playfaircipher::{foursquare::FourSquare, errors::CharNotInKeyError}; use crate::playfair_cipher::playfair::Cypher;

let fsq = FourSquare::new("EXAMPLE", "KEYWORD"); match fsq.decrypt("DIAZ") { Ok(crypt) => { assert_eq!(crypt, "IOEX"); } Err(e) => panic!("CharNotInKeyError {}", e), }; ```

That's it.