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

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

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

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

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

Ответы (6)

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

к этой задаче необходимо применить 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-вариант, вы должны сказать принимающей стороне пароль.

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

Если вы хотите просто защитить файлы паролем, то используйте утилиту hand zip из командной строки

zip -e <file_name>.zip <list_of_files>

-e просит утилиту zip зашифровать файлы, упомянутые в примере работы

Work example:

$ 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*
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.

Использование 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 - это универсальный инструмент, поэтому я подумал, что о нем стоит упомянуть.

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 -