1 个不稳定版本
0.3.4 | 2023 年 8 月 25 日 |
---|---|
0.3.3 |
|
#2296 在 密码学
14KB
171 行
cargo-pwhide
这个工具允许隐藏/混淆密码。它不提供任何安全性
遗憾的是,并非所有地方都提供秘密管理。特别是在内部工具中。缺乏秘密管理意味着密码必须以不安全的方式处理。
最糟糕的部分是将密码以纯文本形式提交到配置文件中的 git。稍微好一点的是,在服务器配置文件中有明文密码。
这个工具尝试让密码隐藏起来,让那些只是查看 git 内容的人难以破解密码,而无需花费时间尝试解密密码。
这种解决方案不提供任何真正的安全性。
这个解决方案包含两部分
- cargo 子命令
- 解密库
使用以下命令安装 cargo 子命令
cargo install cargo-pwhide
这允许使用以下命令加密/解密密码
cargo pwhide encrypt [密码] 或 cargo pwhide decrypt [密码}
这必须在包含有效 Cargo.toml 文件的目录中执行。加密和解密的密钥是 crate 名称。
每次加密运行都会提供不同的输出,因为选择了随机的 nonce。加密使用 Chacha20poly1305 和 base62 编码
库提供了一个解密函数
通过将以下内容添加到您的 Cargo.toml 中进行安装
cargo-pwhide = {version="*", feature=["lib"], default-features = false}
这仅包含所需的最小数量的依赖项。
使用它的最简单方法是使用简单的宏
use cargo_pwhide::pwdecrypt;
let clear_text=pwdecrypt!(encrypted_password);
宏
pwdecrypt!(encrypted_password) -> String 扩展为
pwdecrypt(env!("CARGO_PKG_NAME"),encrypted_password) -> String
除了使用宏,还可以直接调用解密函数。
pwdecrypt (secret:Into,enrypted_data:Into) -> String
它应该使用 pwdecrypt(env!("CARGO_PKG_NAME"),encrypted_password) 调用
如果有人需要的话,以下增强将会被实现
- 如果仅进行解密,则删除对 clap 等的依赖
- 允许指定加密的密钥
- 允许使用静态 nonce 以实现可重复的加密
依赖项
~1.4–2MB
~38K SLoC