Вы должны применить Unix-философию для этой задачи: один инструмент для каждой задачи.
и сжатие образования конденсата работы для tar
и gzip
или bzip2
, крипто работы для любого 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
% gpg --encrypt out.tar.gz
вариант openssl использует симметричное шифрование, вам нужно будет сообщить получающей стороне об использованном «пароле» (он же «ключ»). gpg-вариант использует комбинацию симметричного и асимметричного шифрования, вы используете ключ принимающей стороны (что означает, что вам не нужно сообщать никому какой-либо пароль), чтобы создать ключ сеанса и зашифровать содержимое с этим ключом.
если вы идете по zip (или 7z) маршруту: по сути, это то же самое, что и openssl-вариант, вы должны сообщить принимающей стороне о пароле.
openssl aes-256-cbc -d -in out.tar.gz.enc -out decrypted.tar.gz
openssl enc -aes-256-cbc -e -in foo.tar.gz -out bar.tar.gz.enc
Если вы хотите просто защитить файлы паролем, используйте утилиту hand zip через командную строку
-e просит утилиту zip зашифровать файлы, указанные в
Рабочий пример:
источник
Вот несколько способов сделать это. Следует отметить, что если вы собираетесь использовать отдельные инструменты сжатия и шифрования, вы всегда должны сжимать их перед шифрованием, поскольку зашифрованные данные практически не сжимаются.
Эти примеры сжимают и шифруют файл с именем
clear_text
.С помощью
gpg
По умолчанию gpg сжимает входной файл перед шифрованием, что
-c
означает использование симметричного шифрования с паролем. Выходной файл будетclear_text.gpg
. Одним из преимуществ использованияgpg
является то, что он использует стандартные форматы OpenPGP, поэтому любое программное обеспечение для шифрования, которое поддерживает OpenPGP, сможет расшифровать его.С помощью
mcrypt
-z
Вариант компрессы. По умолчанию это выводит файл с именемclear_text.gz.nc
.С помощью
bcrypt
bcrypt сжимает перед шифрованием по умолчанию,
-r
опция заключается в том, что входной файл не удаляется в процессе. Выходной файл вызываетсяclear_text.bfe
по умолчанию.Использование
gzip
иaespipe
aespipe - это то, на что это похоже, программа, которая принимает данные на stdin и выводит зашифрованные данные на stdout. Он не поддерживает сжатие, поэтому вы можете сначала направить ввод через gzip. Поскольку вывод идет в стандартный вывод, вам придется перенаправить его в файл с именем по вашему выбору. Вероятно, не самый эффективный способ сделать то, что вы просите, но aespipe - это универсальный инструмент, поэтому я подумал, что стоит упомянуть.
источник
Вы можете использовать 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
).источник
Ни tar, ни gzip, ни bzip2 не поддерживают защиту паролем. Либо используйте такой формат сжатия, как zip, либо зашифруйте его с помощью другого инструмента, такого как GnuPG.
источник
-r
.Создать с помощью:
Он попросит вас ввести пароль.
Расшифровать с помощью:
источник