Je souhaite chiffrer un fichier avec AES-256. Comment puis-je le faire rapidement et facilement, et comment puis-je - ou quelqu'un d'autre - le déchiffrer à nouveau?
Malheureusement, il n’existe pas de solution simple pour sécuriser vos documents. Pensez à votre cas d'utilisation, peut-être que quelque chose d'autre que AES est mieux adapté.
Si vous souhaitez un cryptage très simple, indépendant de la plate-forme, vous pouvez utiliser openssl .
Si vous voulez toujours utiliser openssl:
Cryptage:
openssl aes-256-cbc -in attack-plan.txt -out message.enc
Décryptage:
openssl aes-256-cbc -d -in message.enc -out plain-text.txt
Vous pouvez obtenir un fichier openssl vers base64
- pour coder le message en utilisant le commutateur -a
sur le chiffrement et le déchiffrement. De cette façon, vous pouvez coller le texte chiffré dans un courrier électronique, par exemple. Ça va ressembler à ça:
stefano:~$ openssl aes-256-cbc -in attack-plan.txt -a
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX192dXI7yHGs/4Ed+xEC3ejXFINKO6Hufnc=
Notez que vous avez le choix entre des chiffrements et des modes de fonctionnement. Pour une utilisation normale, je recommande aes 256 en mode CBC. Voici les modes de chiffrement dont vous disposez (uniquement en comptant AES):
aes-128-cbc ← this is okay
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc ← this is recommended
aes-256-ecb
Voir également:
Notez s'il vous plaît:
OpenSSL vous demandera un mot de passe. Ce n'est pas une clé de cryptage, elle n'est pas limitée à 32 octets! Si vous voulez transférer des fichiers avec quelqu'un d'autre, votre secret partagé devrait être très fort. Vous pouvez utiliser ce site pour avoir une idée de la qualité de votre mot de passe:
Avertissement: j'ai vérifié que ces sites n'envoient pas votre mot de passe au serveur, mais cela peut changer à tout moment. Utilisez ces sites avec dev tools/inspector et vérifiez s’ils envoient quoi que ce soit avant de saisir votre mot de passe fort.
J'aime utiliser la commande gpg
:
Crypter:
gpg --cipher-algo AES256 --symmetric filename.tar.gz
Sténographie:
gpg --cipher-algo AES256 -c filename.tar.gz
Cela vous demandera un mot de passe.
Décrypter:
gpg --output filename.tar.gz --decrypt filename.tar.gz.gpg
Sténographie:
gpg -o filename.tar.gz -d filename.tar.gz.gpg
Vous pouvez également ajouter cipher-algo AES256
à ~/.gnupg/gpg.conf
pour que AES256 soit la valeur par défaut. (Selon la page de manuel, il s’agit de CAST5 )
7z (lorsque l'option du mot de passe est utilisée) utilise un cryptage AES à 256 bits (avec SHA256 touche étirement ).
Installez-le (p7Zip-full
), cliquez avec le bouton droit sur un fichier ou un répertoire que vous souhaitez chiffrer, puis choisissez Compresser , . 7z et Autres options / Mot de passe .
Pour le déchiffrement, faites un clic droit sur le fichier . 7z et choisissez Extraire ici .
Le site Web lié contient un outil open source de cryptage/décryptage aes 256 bits et est multiplateforme - MacOs, Windows, Linux et autres par le biais de Java.
Chiffrer: aescrypt -e <file>
Décrypter: aescrypt -d <file>
Vous pouvez sauvegarder et chiffrer votre dossier personnel en utilisant la syntaxe suivante:
tar -cvf - /home/<home_folder> | aescrypt -e -p <password_message> - > backup.tar.aes
Télécharger et extraire le source
make
Sudo make install
Téléchargez les fichiers binaires ou le code source à partir du site Web.
Beaucoup de suggestions que j'aurais faites ont déjà été avancées dans ce fil. En fait, openssl est le moyen le plus simple de chiffrer un fichier ou un script. Cependant, je vous déconseille d'utiliser AES-256 simplement parce qu'il n'est pas disponible dans toutes les versions de openssl on certaines plates-formes. La plupart des nouveaux systèmes d'exploitation ... c'est-à-dire. Linux l'a. Mais d'autres, comme AIX 5.3, ne le font pas (je pense également à HP-UX). Si vous souhaitez utiliser votre fichier ou votre script sur différentes plates-formes, il est vivement recommandé d'utiliser AES-128 , car celui-ci est disponible partout.
Comment pouvez-vous "rapidement et facilement" chiffrer un fichier avec AES-128?
Un site tel que www.ShellScrypt.com utilise openssl AES-128 assez intensément pour chiffrer les scripts Shell, puis effectue les copies chiffrées. des scripts exécutables. Tout ce que vous avez à faire est de coller le script sur le site et un fichier Zip sera généré pour vous. Ce fichier Zip contiendra la version cryptée (et exécutable s'il s'agit d'un script) de votre fichier. Cela vous permet de " facilement " et " facilement " pour chiffrer un fichier/script sans satisfaire à aucune exigence de paquet ou de module sur chaque système sur lequel vous comptez utiliser le script ou exécuter plusieurs incantations complexes et déroutantes de commandes openssl.
Ci-dessous, une commande de base pour chiffrer/déchiffrer openssl utilisant AES- 128:
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
test@test-VirtualBox:~$
test@test-VirtualBox:~$
En ajoutant à la réponse de Stefano Palazzo, j'ai créé une petite fonction bash qui fonctionne de manière similaire à la commande base64.
Il va aes256 chiffrer un fichier, puis base64 le coder. En effectuant l'inverse, il va décoder, décrypter, puis cracher le texte en clair d'origine en base64.
aes256() {
decodeMe=""
isPipe="$([ ! -t 0 ] && echo "true" || echo "false")"
if [ "$1" = '-d' ] || [ "$1" = '--decode' ]; then
decodeMe="-d"
shift
fi
if [ "$isPipe" = "true" ]; then
read input
printf '%s\n' "$input" | openssl aes-256-cbc -a $decodeMe
exitCode="$?"
else
openssl aes-256-cbc -a $decodeMe -in "$*"
exitCode="$?"
fi
unset isPipe decodeMe input
return "$exitCode"
}
tilisation:
echo "my string" | aes256
# enter aes-256-cbc encryption password
# Returns: U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=
echo "U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=" | aes256 -d
# enter aes-256-cbc decryption password
# Returns: my string
aes256 file.plain > file.crypt
# enter aes-256-cbc encryption password
aes256 -d file.crypt
# enter aes-256-cbc decryption password
# Spits out original unencrypted file.