#encryption #compile #compile-time #string-literal

litcrypt

在编译时静态加密您的字符串

3 个不稳定版本

使用旧的 Rust 2015

0.3.0 2021年9月10日
0.2.1 2021年2月4日
0.2.0 2021年2月4日

#19 in #encrypted

Download history 789/week @ 2024-03-13 673/week @ 2024-03-20 612/week @ 2024-03-27 686/week @ 2024-04-03 563/week @ 2024-04-10 891/week @ 2024-04-17 784/week @ 2024-04-24 735/week @ 2024-05-01 785/week @ 2024-05-08 705/week @ 2024-05-15 846/week @ 2024-05-22 586/week @ 2024-05-29 1006/week @ 2024-06-05 772/week @ 2024-06-12 842/week @ 2024-06-19 333/week @ 2024-06-26

3,042 每月下载量
用于 bolus

Apache-2.0

13KB
169

LITCRYPT 构建状态

它来自“Literal Encryption”,是一个用于使用简单的“XOR”算法加密文本字面量的Rust proc宏。

LITCRYPT 允许您在二进制文件中无缝隐藏静态字符串字面量,并保护您的应用程序免受非法破解活动的侵害。

LITCRYPT 通过在编译时加密字符串字面量来实现,加密的字符串在运行时仍然保持加密状态,直到使用。

用法

依赖关系

[dependencies]
litcrypt = "0.3"

示例

#[macro_use]
extern crate litcrypt;

use_litcrypt!();

fn main(){
    println!("his name is: {}", lc!("Voldemort"));
}

use_litcrypt! 宏调用应在初始化之后进行,以便您可以使用 lc! 宏函数。第一个参数是用于加密字面字符串的密钥。此密钥也已被加密,并且不会在静态分析器中可见。

请注意,您需要在使用环境变量 LITCRYPT_ENCRYPT_KEY 设置您的加密密钥之前编译:例如

$ export LITCRYPT_ENCRYPT_KEY="myverysuperdupermegaultrasecretkey"

Litcrypt 将加密 lc! 内部写入的每个字符串。

使用 strings 命令检查输出二进制文件以进行验证

$ strings target/debug/my_valuable_app | grep Voldemort

如果输出为空白,则您的应用程序中的宝贵字符串就安全了,不会受到类似Hexeditor等静态分析工具的侵害。

有关示例代码,请参阅 ./examples 目录,并使用以下方式测试

$ cargo run --example simple

[] Robin.

依赖关系

~83KB