nrot

Function rot

Source
pub fn rot(mode: Mode, inputs: &[u8], rotation: u8) -> Vec<u8>
Expand description

Transform any input to rot

use nrot::{rot, Mode};
let rotation = 13;

let input = b"Hello, World!";
let result = b"Uryyb, Jbeyq!";
let encrypted = rot(Mode::Encrypt, input, rotation);
assert_eq!(result.as_slice(), &encrypted);

let input = b"Uryyb, Jbeyq!";
let result = b"Hello, World!";
let encrypted = rot(Mode::Decrypt, input, rotation);
assert_eq!(result.as_slice(), &encrypted);
Examples found in repository?
examples/nrot.rs (line 13)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
fn encrypt(input: String) {
    let rotation = 13;

    let input_length = input.len();
    let input_bytes = input.as_bytes();

    if input_length == 1 {
        let byte_result = rot_letter(Mode::Encrypt, input_bytes[0], rotation);
        println!("{}", String::from_utf8_lossy(&[byte_result]))
    } else {
        let bytes_result = rot(Mode::Encrypt, input_bytes, rotation);
        println!("{}", String::from_utf8_lossy(&bytes_result))
    };
}

fn decrypt(input: String) {
    let rotation = 13;

    let input_length = input.len();
    let input_bytes = input.as_bytes();

    if input_length == 1 {
        let byte_result = rot_letter(Mode::Decrypt, input_bytes[0], rotation);
        println!("{}", String::from_utf8_lossy(&[byte_result]))
    } else {
        let bytes_result = rot(Mode::Decrypt, input_bytes, rotation);
        println!("{}", String::from_utf8_lossy(&bytes_result))
    };
}