Expand description


This crate provides macros to XOR strings declarative or automatically at compile time and automatically decode them at run time.

The XOR key is automatically generated via a macro expansion in the utils sub-crate. To generate a new key just run cargo clean and recompiled the target to re-expand this macro.


use encryption_macros::encrypt_strings;

    fn main() {
        println!("everything in this scope gets encrypted, {}", "even this")


format_args! cannot capture variables when the format string is expanded from a macro.

So something like this: println!("{variable_a}") sadly doesn’t work when inside an encrypted scope.


xor a single string literal declaratively

xor all string literals in the provided scope


Re-export of hex::decode from hex

handles xoring the unencrypted and encrypted literals

Attribute Macros

xor all strings in a decorated function