#string #encryption #cyber #compile-time #redteam

str_crypter

A macro library for XOR encryption and decryption of strings at compile time, meaning no cleartext strings will be in your release binary (when using the macro). The encrypted strings will be decoded at runtime.

3 stable releases

1.0.2 May 26, 2024

#1040 in Rust patterns

MIT license

6KB

str_crypter

str_crypter is a Rust library for XOR encryption and decryption of strings. It provides a macro to XOR encrypt strings from plaintext at compile time using a single byte key. When building in release mode, any plaintext strings encrypted with the macro sc!() will not be present in the binary. At runtime, the macro expands to decrypt the encrypted string.

Usage

use str_crypter::{decrypt_string, sc};

fn main() {
    let encrypted_str: String = match sc!("Hello world!", 20) {
        Ok(s) => s,
        Err(e) => panic!("Decryption failed: {:?}", e),
    };

    println!("Decrypted string: {}", encrypted_str);
}

Installation

Add str_crypter to your Cargo.toml:

[dependencies]
str_crypter = "1.0.1"

Or use the command cargo add str_crypter

No runtime deps