Bonjour à tous.
Je suis en train de tester openssl, pour transmettre une info entre deux machines, et les deux machines ne me donnent pas le même résultat.
$ # encodons une chaine de données
$ echo 'hello word' | openssl aes-256-cbc -a -e -nosalt -pass pass:5636 -out out.enc
$ md5sum out.enc
ec620b153cc6f59f38a148488324753a out.enc
$ cat out.enc
tUtAyysAqseDZJYmCTqdag==
Tout va bien, quand je déchiffre le message, j'obtiens bien mon résultat :
$ # déchiffrons le message
$ openssl version
OpenSSL 0.9.8k 25 Mar 2009 (Library: OpenSSL 0.9.8o 01 Jun 2010)
$ openssl aes-256-cbc -a -d -nosalt -pass pass:5636 -in out.enc
hello word
Si je passe sur une autre machine
$ openssl version
OpenSSL 1.1.0c 10 Nov 2016
$ md5sum out.enc # le fichier est bon
ec620b153cc6f59f38a148488324753a out.enc
$ openssl aes-256-cbc -a -d -nosalt -pass pass:5636 -in out.enc
bad decrypt
139871930868864:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:crypto/evp/evp_enc.c:529:
Qu'est-ce que cela veut dire ? Il faut avoir la même version de la librairie sur les machines pour pouvoir échanger les données ? Ou est-ce qu'il y a un bug sur l'une des deux ? Merci de vos lumières car là je m'inquiète un peu…
# versions et paramètres 0.9.8k et 1.1.0c
Posté par robertix . Évalué à -10. Dernière modification le 07 janvier 2017 à 13:39.
je constate par le moteur de recherche qu'il y a beaucoup d'entrées sur ce sujet
aes-256-cbc digital envelope routines:EVP_DecryptFinal_ex:bad decrypt
# Solution
Posté par chimrod (site web personnel) . Évalué à 3.
En fait la commande de condensé de message par défaut a changé entre les deux version.
La commande réalisée avec openssl 0.9.8k utilise md5, soit l'équivalent de la commande suivante :
Les versions récentes se base sur sha512 pour réaliser l'encodage et le décodage.
Une fois les bon paramètres mis en place, on arrive à échanger les messages correctement (avec une préférence pour le sha512 sur md5 bien sûr !)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.