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 密码学

GPL-3.0-or-later

130KB
3K SLoC

obg - 加密/解密文件

使用无或反之来加密或解密某些内容

CI


安装

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