openssl : Chiffrer-Déchiffrer une chaine de caractères ou un fichier
Encodage en BASE64
Encoder le contenu d'un fichier sur la sortie standard :
$ cat fic1
systèmes
$ openssl enc -base64 -in fic1
c3lzdMOobWVzCg==
Encoder le contenu d'un fichier et écrire le résultat dans un autre fichier :
$ openssl enc -base64 -in fic1 -out fic1.enc
$ cat fic1.enc
c3lzdMOobWVzCg==
Encoder une chaine de caractères :
$ echo -n "secret" | openssl enc -base64
c2VjcmV0
Ne pas oublier d'ajouter l'option -n à la commande echo sinon un retour chariot sera ajouté à la chaine encodée.
Décoder une chaine de caractères :
$ echo "c2VjcmV0" | openssl enc -base64 -d
secret
Décoder le contenu d'un fichier sur la sortie standard :
$ openssl enc -base64 -in fic1.enc -d
systèmes
Décoder le contenu d'un fichier et écrire le résultat dans un autre fichier :
$ openssl enc -base64 -d -in fic1.enc -out fic1.dec
$ cat fic1.dec
systèmes
Chiffrer un fichier avec un algorithme de chiffrement et un mot de passe
1 - Choisir un algorithme de chiffrement :
$ openssl list-cipher-commands
Voir également la page de manuel de la commande enc.
2 - Chiffrer un fichier avec l'algorithme DES3 et écrire le contenu dans un autre fichier (génération d'un fichier binaire) :
$ openssl enc -des3 -salt -in fic1 -out fic1.des3
enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:
$ cat fic1.des3
Salted__d▒j▒G(▒▒r▒d}▒i▒7▒▒▒▒M▒#
Pour le déchiffrage (indication du mot de passe avec l'option -pass) :
$ openssl enc -des3 -d -salt -in fic1.des3 -out file.txt -pass pass:aaaa
$ cat file.txt
systèmes
Chiffrage DES3 mais avec un encodage en BASE64 (pour un envoi par mail par exemple) :
$ openssl enc -des3 -a -salt -in fic1 -out fic1.des3
enter des-ede3-cbc encryption password:
Verifying - enter des-ede3-cbc encryption password:
$ cat fic1.des3
U2FsdGVkX1/Cl8Jr0Aw/3eDLegGPc7meTjWbUQZcNkw=
Pour le déchiffrage :
$ openssl enc -des3 -d -a -salt -in fic1.des3 -out file.txt
enter des-ede3-cbc decryption password:
$ cat file.txt
systèmes
Pour chiffrer un fichier en indiquant le mot de passe dans la ligne de commande (avec l'option -pass) :
$ openssl enc -des3 -salt -in fic1 -out fic1.des3 -pass pass:aaaa
Pour déchiffrer un fichier en indiquant le mot de passe dans un fichier :
$ openssl enc -des3 -salt -in fic1 -out fic1.des3 -pass file:/root/pass
Dans ce cas, seule la première ligne du fichier est utilisée comme mot de passe ou phrase de passe.
Commentaires
malar (non vérifié)
mer, 05/08/2015 - 15:03
Permalien
Pas très efficace
Pas très efficace comme technique pour chiffrer. Si l'on tente l'expérience avec vos exemples, j'obtiens exactement les mêmes résultats... Donc, il est possible de décrypter très facilement une chaîne de caractères comme un message ou un mot de passe, il suffit de faire une correspondance brute-force avec une liste de mots crypter préalablement.... et la correspondance se fera pratiquement toute seule!...
ronan
mer, 05/08/2015 - 15:06
Permalien
Je ne comprends pas
Je ne comprends pas car je viens de refaire tous les tests de mon coté et à aucun moment j'obtiens le même résultat.
Par exemple, avec la commande suivante et le mot de passe "aaaa"
Premier test:
$ openssl enc -des3 -salt -in fic1 -out fic1.des3
$ cat fic1.des3
Salted__▒1▒0▒▒▒]▒w▒▒▒▒▒▒S▒▒
Second test:
$ openssl enc -des3 -salt -in fic1 -out fic1.des3
$ cat fic1.des3
Salted__▒▒Wr[\▒▒▒g}▒p▒▒▒▒7▒▒
Troisième test:
$ openssl enc -des3 -salt -in fic1 -out fic1.des3
$ cat fic1.des3
Salted__▒S▒▒▒F] ▒▒v▒u▒{▒▒[
On voit bien que le contenu des trois fichiers chiffrés n'est pas identique et pourtant le fichier source et le mot de passe sont les mêmes pour les trois tests.
Zoll (non vérifié)
mar, 31/05/2016 - 13:54
Permalien
Le message date mais...
Je sais que le message date mais ça peut toujours servir.
La différence provient de l'argument -slat, il permet d'ajouter une couche de protection supplémentaire. Le "sel" est un élément que l'on retrouve souvent dans les algo de hashage, dans le cas présent il s'agit d'une suite de 8 octets aléatoires (défini au moment du chiffrage) qui est utilisée de la même manière que le mot de passe sur le texte à chiffrer. Le salage est d'ailleurs contenu dans le résultat afin de pouvoir être déchiffré.
Pour ne pas saler le résultat, il faut utiliser l'argument -nosalt.
Exemple avec salage :
$ echo -n "lation" | openssl enc -des3 -pass pass:aaaa
Salted__Ç♀Ó~∟*ô♣ð╗'♫☺FÎurì╗öƨ☻ý
$ echo -n "lation" | openssl enc -des3 -pass pass:aaaa
Salted__â)4ü‗FÅÕÞ¸("{î☻♠0ǽÃ‗[Ów
$ echo -n "lation" | openssl enc -des3 -pass pass:aaaa
Salted__╬cÛ↓`0►©.╗1C£♥k┬Éf° ▓┴ ►
Exemple sans salage :
$ echo -n "lation" | openssl enc -nosalt -des3 -pass pass:aaaa
h©*╝zZbÌÓÅïY9»[Q
$ echo -n "lation" | openssl enc -nosalt -des3 -pass pass:aaaa
h©*╝zZbÌÓÅïY9»[Q
$ echo -n "lation" | openssl enc -nosalt -des3 -pass pass:aaaa
h©*╝zZbÌÓÅïY9»[Q
Le prefix "Salted__" inique que l'on a faire à quelque chose de salé, les 8 octets suivant correspondent au sel utilisé.
ronan
mar, 31/05/2016 - 14:41
Permalien
Tout à fait d'accord.
C'est pour cette raison que j'indique cet argument (-salt) dans la plupart des exemples que je cite.
julie (non vérifié)
ven, 11/09/2015 - 08:15
Permalien
A mon avis, en tant que
A mon avis, en tant que débutant en informatique, il est difficile pour comprendre ces étapes. Je trouve qu'il est facile d'utiliser le logiciel de cryptage, comme truecrypt et file protector.
ronan
ven, 11/09/2015 - 08:33
Permalien
Ce qui est expliqué ici, est
Ce qui est expliqué ici, est 100% lignes de commandes sous Linux ce qui permet d'automatiser le processus sans aucune intervention humaine.
Sinon, le logiciel TrueCrypt n'est plus maintenu et la dernière version disponible (7.2) ne permet plus de crypter mais seulement de décrypter.
Concernant file protector, c'est un tuto sous Windows.
Pour ma part, sous Windows, j'utilise le couple GPG4Win / Kleopatra qui permet de signer, crypter et décrypter des fichiers, des mails etc etc...
salut (non vérifié)
mer, 24/04/2019 - 10:13
Permalien
désolé je suis psychorigide
https://chiffrer.info/
ronan
mer, 24/04/2019 - 12:12
Permalien
Je corrige de ce pas
.
Ajouter un commentaire