2个版本
0.1.1 | 2021年7月21日 |
---|---|
0.1.0 | 2021年4月29日 |
在 加密学 中排名712
20KB
275 行
ansivault
Ansible vault 1.1的Rust实现,虽然不是所有功能都完整,但ansivault允许使用或不用Ansible头工作。
功能
- 加密 字符串或文件(带或不带Ansible头)
- 解密 字符串或文件(带或不带Ansible头)
- 换密 字符串或文件(纯加密,带或不带Ansible头)
- 查看 文件(等同于解密到stdout)输入和输出可以是参数、文件或stdin/stdout
在处理由参数提供的保险库文件和密钥时,请注意EOL问题…
编辑器倾向于在最后一个字符后添加一个EOL(行尾)字符。如果您使用k
选项提供密钥,则不会出现此字符。在vim中,您可以使用以下命令避免这种行为::set noendofline nofixendofline
示例
# Encrypt from arg
ansivault -a -k toto encrypt -s lorem ipsum
$ANSIBLE_VAULT;1.1;AES256
62393433633962666237643534326531633166353364646339623837363231343131656662323465
3731396538376632623432336166643835663538363234340a303735396438636266306538633637
32613133303933396563386439366464386133363666616262633331626165333164313566376561
3861353538663538610a393965653462383031303334623032636336333831663364613234316430
6266
# Encrypt raw (not ansible)
ansivault -k toto encrypt -s lorem ipsum
636237313635343038393061303962363332616538343638623938643531653064643339353434326137383134613338336133626165656165316335343034610a616233626238316331613966613065363161646637393936613339656666633736643334396538616537653637616165343338613132663838303832653739610a3439643933653237346632646335323663353437623839353637393537383963%
# Roundtrip from stdin / stdout
echo "lorem ipsum" | ansivault -ak toto encrypt | ansivault -ak toto decrypt
lorem ipsum
# Encrypt from file to file
ansivault -ak toto -o my_output_file input_file
配置
为了避免将保险库密钥作为参数提供,可以将环境变量ANSIVAULT_KEY_FILE
设置为指向包含保险库密钥的文件的路径。
用法
ansivault [options] <command> [command options] [argument]
常见选项
- h, help:显示帮助信息并退出
- v, verbose:日志级别,默认为vvv(INFO)
- q, quiet:禁用所有日志
- V, version:显示版本并退出
- a, ansible:如果提供,则期望存在Ansible头(1.1)
- k, key:要使用的保险库密钥
命令
decrypt
用于解密文件或指定的字符串。输入不能包含混合数据(例如,包含明文和加密值的文件)。如果没有提供ansible
标志,如果输入具有Ansible保险库头,则操作将失败。 用法
ansivault [common options] decrypt [hios] [INPUT_FILE]
- h, help:显示关于解密命令的帮助
- o, output OUTPUT_FILE:解密数据的输出文件。如果没有提供,默认为stdout
- s, input-string INPUT_STRING:要编码的字符串。如果提供,将忽略INPUT_FILE
- INPUT_FILE:要解密的文件的路径。如果没有提供,则使用stdin
encrypt
用于加密文件或指定的字符串。如果提供ansible
标志,输出中将存在Ansible保险库头。
用法
ansivault [common options] encrypt [hios] [INPUT_FILE]
- h, help:显示关于加密命令的帮助
- o, output OUTPUT_FILE:加密数据的输出文件。如果没有提供,默认为stdout
- s, input-string INPUT_STRING:要编码的字符串。如果提供,将忽略INPUT_FILE
- 输入文件:要加密的文件的路径。如果没有提供,则使用标准输入
rekey
使用提供的新密钥重新加密文件。文件将在原地重新加密。
用法
ansivault [common options] rekey [h]n INPUT_FILE
- h, help:显示rekey命令的帮助信息
- n, new-key NEW_KEY:用于重新加密的新密钥
- 输入文件:要加密的文件的路径
view
解密并打印加密文件。与ansible decrypt 输入文件
的行为相同
用法
ansivault [common options] view [h] INPUT_FILE
- h, help:显示view命令的帮助信息
- 输入文件:要显示的文件的路径
许可证
本项目根据您的选择,受以下任一许可证的许可:
。
贡献
除非您明确表示,否则根据Apache-2.0许可证定义的,您有意提交以包含在guidon中的任何贡献,将按上述方式双重许可,不附加任何额外条款或条件。
文档由cargo readme
生成
依赖项
~2–11MB
~105K SLoC