19 个版本 (9 个稳定版)
3.0.1 | 2023年10月31日 |
---|---|
2.0.3 | 2023年10月29日 |
1.1.2 | 2023年9月14日 |
0.5.1 | 2023年8月29日 |
0.1.1 | 2023年7月31日 |
#1748 in 密码学
130KB
3K SLoC
obg - 加密/解密文件
使用无或反之来加密或解密某些内容
安装
cargo install obg
使用其他文件作为密钥的 AES256-CBC 文件加密或解密
例如,任何视频、图像、音频或任何二进制或纯文本文件都可以用来加密另一个文件。
示例用法
让我们下载 nothing.png
并将其作为 PBKDF2 密钥派生过程中的原始字节 "密码" 输入,从而生成一个 AES 密钥,以供后续加密/解密文件使用。
从 "nothing" 图片文件生成 AES-256-CBC 密钥
wget https://oceania.sh/nothing.png
obg keygen --password ./nothing.png --salt "nihilism" --cycles 84000 -o key-made-of-nothing.yml
加密文件
obg encrypt file --key-file key-made-of-nothing.yml nothing.png nothing-encrypted.png
解密文件
obg encrypt file --key-file key-made-of-nothing.yml nothing-encrypted.png nothing.png
从文本密码生成 AES-256-CBC 密钥
obg keygen --password "here goes your password" --salt "here goes your salt" --randomize-iv --cycles 42000 -o key-made-of-typed-password.yml
之后的加密/解密与上面相同。
从伪随机字节生成 AES-256-CBC 密钥
dd if=/dev/random of="$(pwd)/password72.bin" bs=9 count=8
dd if=/dev/random of="$(pwd)/salt.bin" bs=5 count=8
obg keygen --password "$(pwd)/password72.bin" --salt "$(pwd)/salt.bin" --randomize-iv --cycles 37000 -o key-made-of-dev-random.yml
rm -f "$(pwd)/salt.bin" "$(pwd)/password72.bin"
之后的加密/解密与上面相同。
技巧
--password
或 -salt
选项的 obg keygen
都可以是文件路径,但如果给定的路径在文件系统中不存在,则密码或盐将是该路径。这些选项可以重复以创建看似随机的字节链。
依赖关系
~22–35MB
~595K SLoC