Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/azzamsa/nrot

Simple letter substitution cipher 🔐
https://github.com/azzamsa/nrot

decryption encryption rot13

Last synced: 6 days ago
JSON representation

Simple letter substitution cipher 🔐

Awesome Lists containing this project

README

        


nROT

Simple letter substitution cipher 🔐️


Build status






Sponsor me

---

## Features

- ROT encryption & decryption
- Exhaustive testing

## Usage

```rust
use nrot::{rot, rot_letter, Mode};

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))
};
}

fn main() {
let input = "Hello, world!".to_string();
encrypt(input);

let input = "Uryyb, jbeyq!".to_string();
decrypt(input);
}
```

To learn more, see other [examples](examples/).

## Credits

- ROT13 implementation is inspired by [Cameron Phillips's ROT13](https://github.com/cameronp98/rot13)
- [Noto Emoji](https://github.com/googlefonts/noto-emoji)