#libsodium #safe #security #random-key #generates-random #encryption-key

app cryptobox

一个围绕libsodium的cryptobox_easy的KISS CLI包装器

1 个不稳定版本

0.1.0 2019年1月27日

#16#random-key

BSD-2-Clause OR MIT

8.5MB
4K SLoC

License License Travis CI Appveyor CI

关于Cryptobox

Cryptobox是一个KISS数据加密/解密工具,生成一个随机的256位密钥并将其以十六进制形式打印到StdErr,使用libsodium的crypto_secretbox_xchacha20poly1305_easy使用此随机密钥密封来自StdIn的所有内容,并将密封的数据写入StdOut。

目标是使代码尽可能简单,以便于理解和验证(这也是我们为什么使用libsodium作为后端的原因)。

可选地,Cryptobox可以使用ma_proper作为内存分配器,以确保在将其返回给操作系统之前覆盖分配的内存(特性use-maproper;默认禁用)。

用例

用例相当有限 - 特别是,Cryptobox并不适合

  • 大文件:Cryptobox会从StdIn读取整个输入并将其写入一个不同的内存位置 - 这意味着Cryptobox至少需要两倍的输入大小的内存
  • 任何基于密码的加密:Cryptobox为每次加密使用一个新的随机密钥并显示原始十六进制密钥 - 您需要将其存储在一个安全的地方

相反,用例是用于备份的小型敏感数据的长期安全加密。例如,您可以加密您的GnuPG密钥环并将其上传到Pastebin.com - 这样您只需要在安全的地方存储64个十六进制字符,而不是整个密钥环。

加密

要密封一些数据,将其通过cryptobox的StdIn管道,并将StdOut重定向到目标位置

cryptobox < /path/to/secret.file > /path/to/sealed.file

重要:将显示的密钥存储在安全的地方!没有这个密钥,可能根本无法从密封的文件中恢复数据。

解密

要解密一些数据,将密钥作为环境变量导出,将其通过cryptobox的StdIn管道,并将StdOut重定向到目标位置

export CRYPTOBOX_KEY=0197ac79-e307baf7-facd0c5c-9b1b3951-990d7dd5-4cffc259-fd6ac95c-2f3b1a1c
cryptobox < /path/to/sealed.file > /path/to/secret.file

(Cryptobox会自动检测您导出的密钥并切换到解密模式 - 要从环境变量中删除密钥,请使用unset CRYPTOBOX_KEY

依赖项