2010-07-12 12:50:47 +0000 2010-07-12 12:50:47 +0000
139
139

如何在命令行上对gzip文件进行密码保护?

我想在Ubuntu 10.04上使用tar命令创建一些tar.gz(可能还有tar.bz2)文件。

我想对文件进行密码保护。

用什么命令来做这件事(我已经上网查过了,但没有找到任何关于如何使用密码创建和解压压缩文件的信息)。

有谁知道怎么做?

答案 (6)

165
165
165
2010-07-12 13:05:22 +0000

你必须将 unix-philosophy 应用到这个任务中:每个任务都有一个工具。

tarring和压缩是targzipbzip2的工作,加密是gpgopenssl的工作。

加密

% tar cz folder_to_encrypt | \
      openssl enc -aes-256-cbc -e > out.tar.gz.enc

解密

% openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz

或使用gpg

% gpg --encrypt out.tar.gz

openssl-variant使用符号加密,你必须告诉接收方使用的 “密码"(也就是 "密钥")。gpg-variant使用符号加密和非对称加密的组合,你使用接收方的密钥(这意味着你不需要告诉任何人任何密码)来创建会话密钥,并使用该密钥对内容进行加密。

如果你走zip(或7z)路线:本质上这和openssl-variant是一样的,你必须把密码告诉接收方。

31
31
31
2012-06-17 20:12:34 +0000

如果你的目的只是为了密码保护文件,那么通过命令行

zip -e <file_name>.zip <list_of_files>

-e要求压缩工具对

中提到的文件进行加密。

22
22
22
2014-05-01 01:38:27 +0000

这里有几种方法可以做到这一点。需要注意的是,如果你要使用单独的压缩和加密工具,你应该总是在加密前进行压缩,因为加密后的数据基本上是不可压缩的。

这些例子压缩和加密了一个名为clear_text的文件。

使用gpg

$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress

gpg默认会在加密前压缩输入文件,-c意味着使用带有密码的对称加密。输出文件将是clear_text.gpg。使用gpg的一个好处是使用标准的OpenPGP格式,所以任何支持OpenPGP的加密软件都能解密。

使用mcrypt

$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress

-z选项可以压缩。默认情况下,这将输出一个名为 clear_text.gz.nc 的文件。

使用bcrypt

$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress

bcrypt默认在加密前进行压缩,-r选项是为了在这个过程中不删除输入文件。输出文件默认称为clear_text.bfe

使用gzipaespipe

$ cat clear_text | gzip | aespipe > clear_text.gz.aes #Compress & Encrypt
$ cat clear_text.gz.aes | aespipe -d | gunzip > clear_text #Decrypt & Decompress

aespipe听起来就像一个程序,它在stdin上接受输入,在stdout上输出aes加密数据。它不支持压缩,所以你可以先把输入的数据通过gzip管起来。由于输出到stdout,你必须把它重定向到一个你自己选择名字的文件。可能不是最有效的方法来完成你的要求,但aespipe是一个多功能的工具,所以我认为值得一提。

16
16
16
2014-10-17 09:52:46 +0000

您可以使用 7zip 来创建受密码保护的存档。你可以在命令行(或在脚本中)以下列方式指定密码:

7z a -p<password> <someprotectedfile>.7z file1.txt file2.txt

7zip 也可以以下列方式从 STDIN 读取。

cat <somefile> | 7z a -si -p<password> <someprotectedfile>.7z

如果必须使用zip文件,你可能会想玩玩-t<type>参数(例如-tzip)。

7
7
7
2010-07-12 12:52:34 +0000

tar、gzip和bzip2都不支持密码保护。要不就用zip这样的压缩格式,要不就用GnuPG等其他工具加密。

5
5
5
2017-05-23 12:25:37 +0000

用以下方法创建

tar czvf - directory | gpg --symmetric --cipher-algo aes256 -o passwordprotectedarchive.tar.gz.gpg

它会要求你输入密码.

解密用:

gpg -d passwordprotectedarchive.tar.gz.gpg | tar xzvf -

它会要求你输入密码。

0x1&