Вопрос: Как защитить паролем файлы gzip в командной строке?


Я хочу создать файлы tar.gz (и, возможно, tar.bz2), используя команду tar на Ubuntu 10.04.

Я хочу защитить паролем файл.

Что такое команда для этого (у меня есть Googled, но ничего не найдено, что показывает, как создавать и извлекать сжатые файлы с помощью пароля).

Кто-нибудь знает, как это сделать?


109
2017-07-12 12:50


Источник




Ответы:


вы должны применить философию unix к этой задаче: один инструмент для каждой задачи.

tarring и compression - это работа для 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

в opensl-варианте используется симметричное шифрование, вам нужно будет сообщить получающей стороне об использованном «пароле» (ака «ключ»). gpg-вариант использует комбинацию симметричного и асимметричного шифрования, вы используете ключ принимающей стороны (что означает, что вам не нужно сообщать какой-либо пароль кому-либо), чтобы создать ключ сеанса и склеить содержимое с помощью этого ключа.

если вы отправляете маршрут zip (или 7z): по сути, это то же самое, что и вариант openssl, вы должны сообщить получающей стороне о пароле.


136
2017-07-12 13:05



Для кого-то интересно, как расшифровать файл с помощью openssl: openssl aes-256-cbc -d -in out.tar.gz.enc -out decrypted.tar.gz - ndbroadbent
@ nathan.f77, эта команда также показывает, как делать что-то, не передавая их в openssl. openssl enc -aes-256-cbc -e -in foo.tar.gz -out bar.tar.gz.enc - Keith Smiley
@KeithSmiley, если у вас большие архивы и не много места (например, это может быть на VPS), это более эффективно с точки зрения пространства. - Andrew Savinykh
Кажется, я не могу запустить это на Mac. Разве это вообще так? - eleijonmarck
@eleijonmarck предоставляет часть «не работает, потому что <insert-error-message-here>» ... - akira


Если вы намерены просто защищать паролем файлы, используйте служебную программу 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*

24
2018-06-17 20:12



Шифрование файлов Zip не является безопасным. - Kristopher Ives
@ Кристофер Айвз вы можете подробно остановиться на неясности? - tscizzle
@tscizzle unix-ag.uni-kl.de/~conrad/krypto/pkcrack/pkcrack-readme.html - Kristopher Ives
@KristopherIves Для этого требуется «другой ZIP-архив, содержащий хотя бы один из файлов из зашифрованного архива в незашифрованном формы "для работы. - Franklin Yu
«Вам нужно знать только часть открытого текста (не менее 13 байт)». Это делает это много более уязвимым, чем если бы потребовался весь незашифрованный файл (что уже довольно плохо). Кроме того, шифрование zip не устойчиво к атакам грубой силы (например, с Jack the Ripper). Никто не должен использовать его для чего-то серьезного. - EM0


Вот несколько способов сделать это. Следует отметить, что если вы собираетесь использовать отдельные инструменты сжатия и шифрования, вы должны всегда сжимать перед шифрованием, поскольку зашифрованные данные по существу не сжимаются.

Эти примеры сжимают и шифруют файл, называемый 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 по умолчанию.

С помощью gzip а также aespipe

$ 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. Он не поддерживает сжатие, поэтому вы можете перенести ввод через gzip. Поскольку вывод идет на stdout, вам придется перенаправить его в файл с именем по своему усмотрению. Вероятно, это не самый эффективный способ сделать то, что вы просите, но aespipe - универсальный инструмент, поэтому я подумал, что это стоит упомянуть.


14
2018-05-01 01:38





Вы можете использовать 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).


9
2017-10-17 09:52



Я выбрал это как ответ, потому что это единственный вопрос, который отвечает на вопрос. Вопрос заключается не в том, как шифровать сообщение, а в том, как защищать паролем архив. Это все, что мне нужно было сделать. (Gmail блокировал мои резервные копии сервера, потому что он решил, что в приложении было что-то небезопасное, и мне просто нужно было добавить пароль. Это не должно быть безопасным.) - felwithe


Ни tar, gzip, ни bzip2 не поддерживают защиту паролем. Либо используйте формат сжатия, который делает, например, zip, или шифрует его другим инструментом, таким как GnuPG.


5
2017-07-12 12:52



Ах, это объясняет, почему я не мог найти что-либо в Интернете. Думаю, я поеду за почтой. - morpheous
Gah !, Я пытаюсь рекурсивно заархивировать каталог с passwors, и он создает только zip-файл с именем foobar как (пустой) каталог в нем. Вот команда, которую я использую: zip -e foobar.zip foobar. foobar - это непустая папка в текущем каталоге - morpheous
Как говорит мужчина, -r, - Ignacio Vazquez-Abrams


Создать с помощью:

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

Он попросит вас ввести пароль.

Расшифровывать с помощью:

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

2
2018-05-23 12:25