Quelle est la commande la plus populaire pour chiffrer un fichier ou un répertoire dans un terminal sous Linux?
Je pense que ce serait gpg. La syntaxe des fichiers et des répertoires diffère cependant.
Pour les fichiers (output filename.gpg):
gpg -c filename
Pour les dirs:
gpg-Zip -c -o file.gpg dirname
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.
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
aescrypt -e -p password file.jpg
Décrypter:
aescrypt -d -p password file.jpg.aes
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"
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
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
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.