He cifrado un archivo con la misma línea de comandos con dos versiones diferentes de openssl: 1.0.1t y 1.1.0e. Luego trato de decodificar ambas con la versión 1.0.1t y no puedo decodificar esta última.
¿Puedes decirme por qué y dónde me equivoco? ¿Cómo puedo cifrar y descifrar de forma segura sin cambiar la línea de comando: openssl enc -d -a -bf -in <infile> -out <outfile> -pass pass:<password>
?
Si desea responder una pregunta más: ¿cómo puedo hacer que el cifrado sea más resistente?
Aquí es cómo reproducir la situación. En el host con openssl 1.0.1t:
user@101t$ openssl version
OpenSSL 1.0.1t 3 May 2016
user@101t$ echo "pippo" > prova
user@101t$ openssl enc -e -a -salt -bf -in "prova" -out "prova1.enc" -pass pass:pippo
En el host con openssl 1.1.0e:
user@110e$ openssl version
OpenSSL 1.1.0e 16 Feb 2017
user@110e$ echo "pippo" > prova
user@110e$ openssl enc -e -a -salt -bf -in "prova" -out "prova2.enc" -pass pass:pippo
Copie prova1.enc al host con openssl 1.0.1t y luego escriba:
user@101t$ openssl enc -d -a -bf -in prova1.enc -out x -pass pass:pippo
user@101t$ openssl enc -d -a -bf -in prova2.enc -out x -pass pass:pippo
bad decrypt
139637189576336:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:516:
Gracias de antemano