web-dev-qa-db-fra.com

Comment chiffrer un fichier ou un répertoire sous Linux?

Quelle est la commande la plus populaire pour chiffrer un fichier ou un répertoire dans un terminal sous Linux?

25
user2195

Je pense que ce serait gpg. La syntaxe des fichiers et des répertoires diffère cependant.

Cryptage

Pour les fichiers (output filename.gpg):

gpg -c filename

Pour les dirs:

gpg-Zip -c -o file.gpg dirname

Décryptage

Pour les fichiers (output filename.gpg):

gpg filename.gpg

Pour les dirs:

gpg-Zip -d file.gpg

Edit: Corrigé comme @ Mk12 a souligné l'erreur de compression/décompression pour le cryptage/décryptage.

28
celebdor
  • avec openssl

openssl des3 -salt -in unencrypted-data.tar -out encrypted-data.tar.des3

Décrypter:

openssl des3 -d -salt -in encrypted-data.tar.des3 -out unencrypted-data.tar

  • chiffrer avec AES

aescrypt -e -p password file.jpg

Décrypter:

aescrypt -d -p password file.jpg.aes

8
jet

Personnellement, j'utilise aescrypt principalement.

      aescrypt -e "File" 

et décrypter:

      aescrypt -d "File"

Ou il y a mcrypt:

      mcrypt "File" 

et décrypter:

      mcrypt -d "File"

Et pour un répertoire, je suggère de tarer le répertoire et de le chiffrer. Ensuite, après le déchiffrement, il suffit de décompresser le fichier:

      tar -cf "Dir.tar" Dir/

et décoller

      tar -xf "Dir.tar"
2
Matt

Ceci est ma méthode en utilisant openssl et tar

Ouvrir le répertoire crypté:

openssl enc -aes-256-cbc -d -in ~/vault.tar.gz.dat | tar xz; thunar ~/vault

Verrouiller le répertoire crypté:

tar cz vault/ | openssl enc -aes-256-cbc -out ~/vault.tar.gz.dat; rm -r ~/vault
2
Tom

Essayez GnuPG .

Pour chiffrer: gpg -c filename

Pour déchiffrer: gpg filename.gpg

2
slhck

Si le plus haut niveau de sécurité n'est pas un gros problème (la page de manuel de Zip indique que l'algorithme de cryptage utilisé par les utilitaires zipfile est plus faible que PGP), je préfère alors Zip et unzip. Il ferme mes répertoires et crypte en même temps. Je préfère Zip parce que vous pouvez avoir une sorte de Zip incrémental et chiffrer au lieu de compresser et chiffrer le tout à nouveau. En particulier, il est utile lorsque la taille des répertoires est très grande.

Zip et chiffrer

Zip file.Zip file
Zip -r directory.Zip directory
Zip --encrypt file.Zip.enc file # Prompt for password
Zip --encrypt -r directory.Zip.enc directory # Prompt for password

Décompressez et déchiffrez

unzip directory.Zip.enc #Beware if any directory is present with the same name as the zipped file, then it would be overwritten. Hence I normally send the contents to another directory.

unzip directory.Zip.enc -d directory-new # prompts for password
1
infoclogged

Peut-être pas populaire, mais je travaille sur un projet pour chiffrer/déchiffrer n'importe quoi avec une interaction minimale de l'utilisateur à l'aide de quelques scripts Bash. Voici un lien vers le message Hak5 qui explique la configuration pour les tests.

En contournant les logiques du code source, voici ce qu'il se passe pour chaque type de données pouvant être gérées par le projet lié ci-dessus.

_gnupg_encrypt_opts="--always-trust --armor --batch --encrypt --recipient [email protected]"
 _bulk_output_dir="some_path"
_arbitrary_parsed_output="some_file.gpg"
## If file make encrypted time stamped file with similar name
_path_to_file="${_mapped_input}"
_path_to_output="${_bulk_output_dir}/$(date -u +%s)_${_path_to_file##*/}.gpg"
cat "${_path_to_file}" | gpg ${gpg _gnupg_encrypt_opts} > "${_path_to_output}"
## else if directory make compressed encrypted time stamped output file
_path_to_dir="${_mapped_input}"
_path_to_output="${_bulk_output_dir}/$(date -u +%s)_dir.tgz.gpg
tar -cz - "${_path_to_dir}" | gpg ${gpg _gnupg_encrypt_opts} > "${_path_to_output}"
## else if something else append encrypted output to file
_path_to_output="${_arbitrary_parsed_output}"
cat <<<"${_mapped_input}" | gpg ${gpg _gnupg_encrypt_opts} >> "${_path_to_output}"

La variable ${_mapped_input} est définie en lisant un fichier de canal nommé mkfifo et en définissant tout ce qui est lu dans un tableau avec mapfile -t _lines < "${_file_to_map}" qui est ensuite développé et enregistré dans un ${_mapped_input}... un peu compliqué, mais il permet aux fonctionnalités expérimentales d'agir sur des lignes individuelles. Le résultat final est un répertoire contenant des fichiers cryptés ou des répertoires compressés et un fichier contenant divers paquets de données cryptées.

Le déchiffrement des fichiers ou des répertoires compressés est assez simple sur un périphérique doté d'une clé privée associée à la clé publique utilisée pour le chiffrement. Cependant, le décryptage de plusieurs paquets de données chiffrés avec une armure était un peu plus difficile. Un script nommé Paranoid_Pipes_Scenario_One.sh dans le projet ci-dessus a donc été écrit pour le faire avec une interaction minimale de l'utilisateur. Vous trouverez ci-dessous une version simplifiée du code source des scripts d'assistance pour les fichiers et répertoires cryptés normaux.

_gnupg_decrypt_opts="--quiet --no-tty --always-trust --passphrase-fd 9 --decrypt"
_decryption_output_dir="some_directory"
# if file
exec 9<"${_pass[@]}"
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.gpg*}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} > "${_decryption_output_dir}/${_output_name}"
# else if compressed file
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.tgz.gpg*}"
mkdir -p "${_decryption_output_dir}/${_output_name}"
_old_pwd="${PWD}"
cd "${_decryption_output_dir}/${_output_name}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} | tar -xzf -
cd "${_old_pwd}"
# else if non-compressed directory
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.tar.gpg*}"
mkdir -p "${_decryption_output_dir}/${_output_name}"
_old_pwd="${PWD}"
cd "${_decryption_output_dir}/${_output_name}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} | tar -xf -
cd "${_old_pwd}"

Si vous souhaitez voir quelles autres fonctionnalités fonctionnent et sont testées de manière publiquement vérifiable, consultez les journaux de construction Travis-CI (en particulier à la fin des journaux), vous découvrirez qu'il en existe d'autres. des choses fantaisistes sur le cryptage et le décryptage de presque toutes les données.

0
S0AndS0