Julien Philippon

Chiffrer et déchiffrer facilement dans le terminal avec aes256

Il peut arriver d’avoir besoin de chiffrer un fichier pour le faire transiter de façon sécurisé, avec un type de chiffrement symétrique pour pouvoir le récupérer via un simple (mais fort) mot de passe.

J’ai fait le tour des logiciels, cependant je n’ai pas trouvé chaussure à mon pied. Je me suis finalement basé sur openssl, et mis en place deux petite fonction dans mon fichier .profile de ma session pour y avoir accès d’où je veux dans ma session.

Voici le code :

function aes-encrypt() {
  if [ -n "$2" ]; then
    openssl enc -aes-256-cbc -a -e -in $1 -out $2 -pbkdf2 -iter 1000000 -md sha512
  else
    openssl enc -aes-256-cbc -a -e -in $1 -out $1.enc -pbkdf2 -iter 1000000 -md sha512
  fi
}


function aes-decrypt() {
  if [ -n "$2" ]; then
    openssl enc -aes-256-cbc -a -d -in $1 -out $2 -pbkdf2 -iter 1000000 -md sha512
  else
    OUT=$(echo $1 | sed -e 's/\.enc$//')
    [[ "$OUT" == "$1" ]] && echo "INPUT must as .enc extension or use 2nd parameter";
    [[ "$OUT" != "$1" ]] && openssl enc -aes-256-cbc -a -d -in $1 -out $OUT -pbkdf2 -iter 1000000 -md sha512
  fi
}

Comment on l’utilise ?

C’est simple, allez dans le dossier ou se trouve le fichier à chiffrer (si c’est un dossier vous devez le compresser avant). Ensuite, rien de plus simple, pour chiffrer :

# Chiffrer (il vous demandera un mot de passe + confirmation)
aes-encrypt monfichier.zip # Génère un fichier chiffré monfichier.zip.enc

# Chiffrer et spécifier le nom
aes-encrypt monfichier.zip fichierDeSortie.secret # Génère un fichier chiffré fichierDeSortie.secret

Pour déchiffrer :

# Déchiffrer
aes-decrypt monfichier.zip.enc # Génère le fichier déchiffré monfichier.zip

# Déchiffrer et spécifier le nom de sortie
aes-decrypt monfichier.zip.enc fichierEnClair.zip # Génère un fichier déchiffré fichierEnClair.zip

Faites-en bon usage, et n’oubliez pas de choisir un mot de passe fort et de le garder en sécurité !