118

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

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

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

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

6 ответов6

145

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

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

 % gpg --encrypt out.tar.gz

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

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

28

Если вы хотите просто защитить файлы паролем, используйте утилиту hand 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*
16

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

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

12

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

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

3

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .