加密和压缩


28

除了或tar之后,还有其他更好的方法来压缩然后加密文件吗?opensslgpg


3
那要看。你有什么要求 您如何量化“最佳”?您有哪些可用工具?您是否已经考虑过其他可能有用的选项?
格雷格·希吉尔

没有考虑其他任何人。它只需要基本的加密,即某人无法读取文件的内容,并且最好保持良好的压缩率。
user75027 2014年

1
通常,答案是否定的。Unix的核心哲学之一是“做一件事情,做好一件事情”。tar -z是一个例外,因为这是非常普遍的做法。
Patrick

1
较新的tar版本支持xz压缩(标志-J),其压缩率通常比更传统的gzip(-z)或bzip2(-j)压缩更好。
jofel

我注意到那xz太好了。我确实记得下载内核,并将其压缩到其原始大小的约1/7。我想我tar cvJf out.tar.xz file1 [file2...]先用gpg或openssl对其进行加密。我还注意到xz非常快。它如何实现比bz2更好的压缩并且仍然快速?
user75027 2014年

Answers:


24

tar是捆绑文件的常用工具。Plain tar本身不会压缩。有单独的工具,例如gzipbzip2xz(按典型文件的压缩比升序排列)可压缩一个文件。许多tar实现,包括GNU tar(Linux上的常规实现),都可以使用选项自动压缩(-z对于gzip,-j对于bzip2,-J对于xz):

tar -cJf myarchive.tar.xz file1 file2 file3

要加密文件,请使用gpg。创建一个密钥并将其与您的电子邮件地址关联(GPG / PGP密钥标识符通常包含一个电子邮件地址,尽管不是必需的)。加密文件,将电子邮件指定为收件人。要解密文件,您需要输入密码来解锁私钥。

GPG还允许您使用密码加密文件。这不太安全,也不灵活。灵活性较差,因为在加密时需要指定密码(例如,您不能进行无人值守的备份)。它的安全性较差,因为唯一的安全性是密码,而基于密钥的加密将安全性分为密码和密钥之间。

不要使用openssl命令行工具。这是OpenSSL库的展示柜,并非为生产目的而设计。尽管您可以使用它来做一些事情(特别是它确实具有基本证书颁发机构所需的所有原语),但是它很难正确使用,并且没有您需要做的所有事情。在GPG为您提供自行车的地方,OpenSSL为您提供了各种尺寸的金属棒和几个橡胶室(不包括螺钉和泵)。使用GPG。


我了解tar作为捆绑程序和压缩方法。gpg键对我来说是新的。尽管我确实有一把钥匙,但我并不完全了解如何使用它。我认为。我想我也有ssh键。
user75027

就是我一直想用一个命令(在管道中使用targpg)压缩和加密的内容。
CGFoX

12

您可以使用7zip:

7z a -p -mhe=on stuff.7z MyStuff
   ^  ^     ^      ^        ^
   |  |     |      |        `--- Files/directories to compress & encrypt.
   |  |     |      `--- Output filename
   |  |      `--- Encrypt filenames
   |  `---- Use a password
   `---- Add files to archive

它将提示您输入密码。显然,它使用AES-256加密和SHA-256密码,并使用一个计数器重复512K次以获取密钥。

编辑:这不会加密文件名,因此您可能tar还是要先进行所有操作。

编辑2:已添加-mhe=on


5
如果使用7za,则可以使用-mhe=on选项加密文件名。
SilverlightFox

3

因此,您也可以使用7zip加密文件名:

7z a -p -mhe=on stuff.7z MyStuff
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.