it-swarm-ru.tech

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

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

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

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

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

125
morpheous

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

152
akira

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

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

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

19
Graphics Noob

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

13
SaeX

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

7
Ignacio Vazquez-Abrams

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

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

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

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

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