# Obfustring [github](https://github.com/Retoon/obfustring) [crates.io](https://crates.io/crates/obfustring) [docs.rs](https://docs.rs/obfustring/latest/obfustring) [license](https://github.com/Retoon/obfustring/blob/master/LICENSE) This crate provides a obfuscation macro for string literals. This makes it easy to protect them from common reverse engineering attacks like string reference lookup in something like a debugger or hex editor. A string literal `""` is given as the input and converted into a `[u8; str_size*2]` array literal that is then stored inside the binary. Every character is offset by a random amount. This offset is stored alongside the original data so it can be reconstructed. ## Installation ```toml [dependencies] obfustring = "0.5.0" ```

# Syntax & Usage The crate provides a `obfustring!()` macro that takes in a single string literal. ```rs use obfustring::obfustring; let obfuscated_string = obfustring!("Hello obfustring!"); // <-- Won't show up in binaries or hex editors let generic_string = String::from("Hello regular string!"); // <-- Will show up in binaries or hex editors println!("obfuscated_string: {}", obfuscated_string); println!("generic_string: {}", generic_string); ```
# Disclaimer Note that you should **never** have any encryption/api keys or sensetive data hardcoded into your program. Though this macro would make it harder, it wouldn't absolutely hide it from someone looking hard enough. **Stick to environment variables.**

## License This project is licensed under the [MIT license]. [mit license]: https://github.com/Retoon/obfustring/blob/master/LICENSE