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

Comment protéger par mot de passe les fichiers gzip en ligne de commande ?

Je veux créer quelques fichiers tar.gz (et éventuellement tar.bz2), en utilisant la commande tar sur Ubuntu 10.04.

Je veux protéger le fichier par un mot de passe.

Quelle est la commande pour le faire (j'ai cherché sur Google, mais je n'ai rien trouvé qui montre comment créer et extraire des fichiers compressés en utilisant un mot de passe).

Quelqu'un sait comment faire ?

Réponses (6)

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

vous devez appliquer la philosophie unix à cette tâche : un outil pour chaque tâche.

le tarage et la compression est un travail pour tar et gzip ou bzip2, la cryptographie est un travail pour gpg ou openssl :

Encrypter

% tar cz folder_to_encrypt | \
      openssl enc -aes-256-cbc -e > out.tar.gz.enc

Décrypter

% openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz

Ou utiliser gpg

% gpg --encrypt out.tar.gz

la variante openssl utilise un cryptage symétrique, vous devez indiquer à la partie destinataire le “mot de passe” utilisé (alias “la clé”). la variante gpg utilise une combinaison de cryptage symétrique et asymétrique, vous utilisez la clé de la partie destinataire (ce qui signifie que vous n'avez pas à communiquer à quiconque le mot de passe utilisé) pour créer une clé de session et crypter le contenu avec cette clé.

si vous optez pour la méthode zip (ou 7z) : c'est essentiellement la même chose que la variante openssl, vous devez communiquer le mot de passe à la partie destinataire.

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

Si votre intention est simplement de protéger les fichiers par un mot de passe, alors utilisez l'utilitaire zip manuel par la ligne de commande

zip -e <file_name>.zip <list_of_files>

-e demande à l'utilitaire zip de crypter les fichiers mentionnés dans

Exemple de travail :

$ 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

Voici quelques moyens d'y parvenir. Une chose à noter est que si vous allez utiliser des outils de compression et de cryptage séparés, vous devez toujours compresser avant de crypter, car les données cryptées sont essentiellement non compressibles.

Ces exemples permettent de compresser et de crypter un fichier appelé clear_text.

L'utilisation de gpg

$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress

gpg comprimera le fichier d'entrée avant le cryptage par défaut, -c signifie utiliser un cryptage symétrique avec un mot de passe. Le fichier de sortie sera clear_text.gpg. L'un des avantages de l'utilisation de gpg est qu'il utilise les formats OpenPGP standard, de sorte que tout logiciel de cryptage qui prend en charge OpenPGP sera en mesure de le décrypter.

Utiliser mcrypt

$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress

L'option -z compresse. Par défaut, elle produit un fichier appelé clear_text.gz.nc.

En utilisant bcrypt

$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress

bcrypt compresse avant de crypter par défaut, l'option -r est pour que le fichier d'entrée ne soit pas supprimé dans le processus. Le fichier de sortie est appelé clear_text.bfe par défaut.

Using gzip and 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 est ce à quoi il ressemble, un programme qui prend l'entrée sur stdin et sort aes données cryptées sur stdout. Il ne prend pas en charge la compression, donc vous pouvez d'abord faire passer l'entrée par gzip. Puisque la sortie est envoyée sur stdout, vous devrez la rediriger vers un fichier avec un nom de votre choix. Ce n'est probablement pas la façon la plus efficace de faire ce que vous demandez, mais aespipe est un outil polyvalent, et j'ai donc pensé qu'il valait la peine de le mentionner.

16
16
16
2014-10-17 09:52:46 +0000

Vous pouvez utiliser 7zip pour créer votre archive protégée par un mot de passe. Vous pouvez spécifier le mot de passe sur la ligne de commande (ou dans un script) de la manière suivante :

7z a -p<password> <someprotectedfile>.7z file1.txt file2.txt

7zip peut également lire à partir de STDIN comme suit :

cat <somefile> | 7z a -si -p<password> <someprotectedfile>.7z

Si l'utilisation de fichiers zip est obligatoire, vous pouvez jouer avec le paramètre -t<type> (par exemple -tzip).

7
7
7
2010-07-12 12:52:34 +0000

Ni tar, ni gzip, ni bzip2 ne prennent en charge la protection par mot de passe. Il faut soit utiliser un format de compression qui le permet, comme zip, soit le crypter avec un autre outil comme GnuPG.

5
5
5
2017-05-23 12:25:37 +0000

Créer avec :

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

Il vous demandera un mot de passe.

Décrypter avec :

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