在bash中加密和解密备份文件的简单方法

时间:2016-04-09 08:32:31

标签: bash encryption

我需要加密备份文件gzip。 我执行了以下操作。

    tar -Pzcvf  $dir/*.xml >/dev/null | gpg --yes --batch --passphrase PaSsW0rD -o "$bpath/$bfile".tar.gz

但它失败了以下错误。,

     gpg: processing message failed: Unknown system error

我只需要一个简单的passsord保护备份文件。任何其他替代解决方案也是受欢迎的。

提前致谢

1 个答案:

答案 0 :(得分:0)

选项1

按照自己的方式行事:

tar -zcvf your_tar_file_name.tar.gz "$dir"/*.xml && gpg --symmetric  --cipher-algo AES256 your_tar_file_name.tar.gz

请注意,我不希望保留绝对名称,因此我从tar中删除了 P 选项。在这种情况下,默认输出文件是your_tar_file_name.tar.gz.gpg

要解密并获取文件,您可以执行以下操作:

gpg -o my_tar_file.tar.gz -d your_tar_file_name.tar.gz.gpg && tar -xzf my_tar_file.tar.gz

这使用对称加密方案,即我们可以使用相同的密码来解密文件。上述命令将要求您输入加密密码并进行确认。

如果您希望使用gpg进行非对称加密,请查看此tutorial

选项2

您也可以使用 aescrypt

here

下载aescrypt

安装完成后,您可以使用直接的GUI加密文件。

如果您需要命令行工具,可以使用如下所示的aescrypt命令:

 tar zcvf your_tar_file_name.tar.gz "$dir"/*.xml && aescrypt -e -p yourstrongpassword your_tar_file_name.tar.gz

此处 e 用于加密, p 用于加密。输出通常存储在your_tar_file_name.tar.gz.aes

您可以使用

解密your_tar_file_name.tar.gz.aes文件
aescrypt -d -p yourstrongpassword your_tar_file_name.tar.gz.aes

此处 d 用于解密。