我想用密码保护文件。
是执行此命令的命令(我已经用Google搜索过,但未发现任何内容显示如何使用密码创建和提取压缩文件)。
任何人都知道如何执行此操作?
#1 楼
您必须将unix理念应用到此任务:每个任务使用一个工具。解压缩是
tar
和gzip
或bzip2
的工作,crypto是gpg
或openssl
的工作:加密
% 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
openssl-variant使用对称加密,您必须将使用的“密码”(也称为“密钥”)告知接收方。 gpg-variant结合使用了对称加密和非对称加密,您使用接收方的密钥(这意味着您不必告诉任何涉及到任何人的密码)来创建会话密钥并使用该密钥对内容进行加密。
如果使用zip(或7z)路由:本质上与openssl-variant相同,则必须告知接收方有关密码。
评论
对于任何想知道如何使用openssl解密文件的人:openssl aes-256-cbc -d -in out.tar.gz.enc -outcrypted.tar.gz
–ndbroadbent
13年1月28日在22:03
@ nathan.f77该命令还显示了如何在不将其传送到openssl的情况下执行操作。 openssl enc -aes-256-cbc -e -in foo.tar.gz -out bar.tar.gz.enc
–基思笑脸
2014年3月6日23:48
@KeithSmiley,如果您有大量的档案并且没有很多空间(例如可能在VPS上),则可以节省空间。
–安德鲁(Andrew Savinykh)
2014年6月2日23:15
我似乎无法在Mac上运行它。无论如何,这有什么不同吗?
– eleijonmarck
16 Dec 20'在20:46
@eleijonmarck提供以下部分“由于
– akira
16年12月21日在8:34
#2 楼
如果您只打算用密码保护文件,则可以通过命令行使用zip实用工具zip -e <file_name>.zip <list_of_files>
-e要求zip实用工具对
中提到的文件进行加密/>
工作示例:
$ touch file_{0,1}.txt # creates blank files file_0 & file_1
$ zip -e file.zip file_* # ask zip to encrypt
$ ENTER PASSWORD:
$ VERIFY PASSWORD:
$ ls file*
评论
Zip文件加密绝对不安全。
–克里斯托弗·艾夫斯(Kristopher Ives)
2014年5月2日在6:55
您可以详细说明@KristopherIves的不安全性吗?
–tscizzle
16年6月2日在22:26
@tscizzle unix-ag.uni-kl.de/~conrad/krypto/pkcrack/pkcrack-readme.html
–克里斯托弗·艾夫斯(Kristopher Ives)
16年4月4日在2:09
@KristopherIves它需要“另一个ZIP归档文件,其中至少包含来自加密归档文件的未加密格式的文件之一”。
–于富兰
16 Dec 30 '20:36
“您只需要知道一部分明文(至少13个字节)”。与要求使用整个未加密文件(这已经很糟糕)相比,它更容易受到攻击。另外,zip加密不能抵抗暴力攻击(例如,使用开膛手杰克)。没有人应该将其用于任何严重的事情。
–EM0
17年7月24日在15:41
#3 楼
这是几种方法。需要注意的一件事是,如果要使用单独的压缩和加密工具,则应始终在加密之前进行压缩,因为加密的数据本质上是不可压缩的。这些示例压缩并加密一个名为
clear_text
。使用
gpg
默认情况下,gpg将在加密之前压缩输入文件,
-c
表示使用带密码的对称加密。输出文件将是clear_text.gpg
。使用gpg
的一个好处是使用标准的OpenPGP格式,因此任何支持OpenPGP的加密软件都可以解密它。使用
mcrypt
$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress
-z
选项会压缩。默认情况下,这会输出一个名为clear_text.gz.nc
的文件。 使用
bcrypt
$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress
bcrypt在默认加密之前进行压缩,
-r
选项是为了避免在执行过程中删除输入文件。默认情况下,输出文件名为clear_text.bfe
。使用
gzip
和aespipe
$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress
aespipe听起来像是一个需要输入的程序在stdin上并在stdout上输出AES加密数据。它不支持压缩,因此您可以先通过gzip传递输入。由于输出转到stdout,因此您必须将其重定向到使用您自己选择的名称的文件。可能不是最有效的方式来完成您要问的内容,但是aespipe是一种多功能工具,因此我认为值得一提。
#4 楼
您可以使用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
)。评论
我选择这个作为答案,因为它是唯一回答问题的人。问题不是如何加密消息,而是如何对存档进行密码保护。这就是我要做的。 (Gmail阻止了我的服务器备份,因为它确定附件中存在某些不安全的内容,我只需要添加密码即可。它不必一定很安全。)
–追随
16-09-23在16:56
#5 楼
tar,gzip或bzip2都不支持密码保护。请使用压缩格式(例如zip),或使用其他工具(例如GnuPG)对其进行加密。评论
啊,这解释了为什么我在网上找不到任何东西。我想我会去拉链。
–非晶
2010年7月12日在13:01
Gah !,我正在尝试使用passwors递归压缩目录,并且它仅创建名称为foobar的zip文件作为其中的(空)目录。这是我正在使用的命令:zip -e foobar.zip foobar。 foobar是当前目录中的非空文件夹
–非晶
2010年7月12日在13:22
就像那个人说的那样,-r。
–伊格纳西奥·巴斯克斯(Ignacio Vazquez-Abrams)
2010年7月12日在13:24
#6 楼
使用以下内容创建:tar czvf - directory | gpg --symmetric --cipher-algo aes256 -o passwordprotectedarchive.tar.gz.gpg
它会要求您输入密码。
解密: />
#7 楼
使用zip
和unzip
牢记受密码保护的zip文件的安全性问题,下面介绍了如何使用
zip
加密目录和文件:zip -r --encrypt archive.zip a_directory a_file
提示输入密码。
要解密文件,可以使用
unzip
:unzip archive.zip
请参阅此答案以使用
bsdtar
加密和解密档案。
评论
另请参阅向Ubuntu询问此问题的答案。