2 个版本
0.1.2 | 2023年3月8日 |
---|---|
0.1.1 | 2023年3月8日 |
#2345 在 密码学
10KB
180 行
aes-config-rs
具有 AES 加密功能的 Rust 项目配置。
用法
cmd
您可以通过可选标志传递所有参数
# encrypt config file
./target/release/config_cli -p config.toml -s "abcdefghijklmnopqrstuvwxyz123456" -n encrypt_config.toml -f toml encrypt
# decrypt config file
./target/release/config_cli -p encrypt_config.toml -s "abcdefghijklmnopqrstuvwxyz123456" -n encrypt_config.plain.toml -f toml decrypt
您还可以通过环境变量 AES_CONFIG_KEY
传递密钥。
export AES_CONFIG_KEY=abcdefghijklmnopqrstuvwxyz123456
# encrypt config file
./target/release/config_cli -p config.toml -n encrypt_config.toml -f toml encrypt
# decrypt config file
./target/release/config_cli -p encrypt_config.toml -n encrypt_config.plain.toml -f toml decrypt
作为 crate
use aes_config::ConfigType;
use serde::Deserialize;
use std::fmt::Debug;
#[derive(Deserialize, Debug)]
struct Config {
port: u16,
name: String,
}
/*
config.toml file:
port=10086
name="test"
encrypt_config.toml file:
qOOX56hXnadNC5uHU36IgB1i/2OKgfgXz4PmDYmy683qUewVqsg=
*/
fn main() {
let salt = "abcdefghijklmnopqrstuvwxyz123456".to_string();
let c = aes_config::ConfigInfo::new(
"examples/encrypt_config.toml".to_string(),
Some(salt),
ConfigType::TOML,
)
.unwrap();
println!("{:#?}", c.try_get_config::<Config>().unwrap());
}
依赖关系
~3.5MB
~64K SLoC