#secret #encryption #applications #security #manage #street #cred

bin+lib street-cred

管理应用程序的加密秘密

4 个版本

0.1.3 2023 年 11 月 3 日
0.1.2 2022 年 11 月 16 日
0.1.1 2022 年 11 月 15 日
0.1.0 2022 年 11 月 13 日

#1176 in 密码学

29 个月下载量

MIT 许可证

38KB
676 代码行

Street Cred

Build Status Coverage Status Crate Docs

管理应用程序的加密秘密。

安装

作为命令行工具

cargo install street-cred

作为 Rust 项目的依赖项

cargo add street-cred

CLI 使用方法

Street Cred 期望您的加密密钥存储在名为 MASTER_KEY 的环境变量中,或存储在当前目录中名为 master.key 的文件中。

# Initialize a new project with an encrypted secrets file and encryption key
street-cred init

# Edit existing file
street-cred edit secrets.txt.enc

库使用

您还可以将 Street Cred 作为库用于您自己的代码中的简单加密/解密。

use street_cred::FileEncryption;

let file_path = String::from("secrets.txt.enc");
let encryption_key = String::from("425D76994EE6101105DDDA2EE2604AA0");
let file_encryption = FileEncryption::new(file_path, encryption_key);

if let Some(decrypted_contents) = file_encryption.decrypt() {
  // do something with decrypted_contents
};

灵感

看到 Ruby on Rails 允许存储与现有应用程序代码一起的加密秘密,我希望在没有 Ruby/Rails 要求的情况下实现同样的功能。这个 CLI 应用和库允许开发者使用在存储库中存储加密秘密的相同模式。

安全注意事项

如果您选择使用此代码在代码库中存储加密秘密,请确保您永远不要在您的存储库中提交或跟踪加密密钥。您可以将 git 配置为忽略加密密钥和未加密文件,以确保它们永远不会被提交。

以下是一个示例 gitignore 设置,假设密钥存储在 master.key 中,加密秘密在 secrets.txt.enc 中。

# .gitignore
master.key
secrets.txt

依赖关系

~5.5MB
~104K SLoC