我有一个包含许多文件的个人存档(超过 12Go)
我想用密码加密,然后将其分成100份。
我怎样才能这样做呢?
我怎样才能重新组合它并解密它以取回文件?
答案1
要加密文件,请使用openssl
:
openssl aes-128-cbc -in the_archive -out the_archive.crypted
要分割文件,请使用split
:
split -a 3 -b 100000 the_archived.crypted chunk.
要重新组合块,请使用cat
:
cat chunk.??? >the_archive.crypted
要再次解码文件,请使用openssl
:
openssl aes-128-cbc -d -in the_archive.crypted -out the_archive
答案2
如果这 100 个部分中的任何一个丢失/损坏,您最终可能无法恢复任何文件,我更倾向于每个加密的 100 个单独的档案。
但是,对于一个巨大的分割文件,如果您的工具不支持使用 stdin/stdout 进行管道传输,您最终可能需要 12Go(千兆字节?)的可用空间来重新组装各个部分,并需要另外 12 个可用空间来解密/查看存档。
一起使用 tar 和 gpg 以及 split 应该可以,例如:
tar -c files | gpg -o- ... | split -b [size 1/100th of total] -
可能有用的拆分选项可能包括:
-a3
生成长度为 N 的后缀(默认 2)-d
使用数字后缀而不是字母后缀。-
读取标准输入。outputfilename.
输出文件的名称
答案3
创建/加密/分割:
tar -cJvpf - inputdirectory/ |
gpg --symmetric --cipher-algo aes256 |
split -d -b 100m - outputfile.tar.xz.gpg.
改编自如何通过一个命令使用 tar、split 和 openssl 进行备份和加密?在 Ask Ubuntu 上,修改为使用 gpg 而不是 openssl。
焦油选项:
-c
=--create
创建一个新档案
-J
=--xz
通过过滤存档
xz
-v
=--verbose
详细列出已处理的文件
-p
=--preserve-permissions
=--same-permissions
提取有关文件权限的信息(超级用户的默认值)
-f
=--file=ARCHIVE
使用存档文件或设备
ARCHIVE
并解密:
cat outputfile.tar.xz.gpg.* | gpg -d | tar -xJvpf -