In april heb ik een bestand versleuteld met het commando
openssl enc -aes-256-cbc -salt -pass file:<passwordfile> < infile > outfil
Nu wil ik het decoderen met
openssl enc -d -aes-256-cbc -salt -pass file:<passwordfile> -in outfil -out infile2
maar ik krijg een slecht magisch getal.
Een gisteren gecodeerd bestand met dezelfde parameters decodeert ok.
Wat had er kunnen gebeuren? en kan ik dit gearchiveerde bestand toch ophalen?
Antwoord
Als je versleuteld hebt met OpenSSL < = 1.0.2 en u decodeert met OpenSSL 1.1.0, dan is het waarschijnlijk dit:
https://www.openssl.org/docs/faq.html#USER3
De standaard hash die wordt gebruikt om de sleutel te genereren op basis van het wachtwoord dat is gewijzigd tussen 1.0.2 en 1.1.0. Probeer -md md5
toe te voegen aan je decoderingsopdracht.
Reacties
Antwoord
Het onderstaande commando gaf me pijn:
openssl aes-256-cbc -d -in hotmama.tar.bz2.enc -out hotmama.tar.bz2 enter aes-256-cbc decryption password: bad magic number
En het onderstaande commando loste het op en gaf me plezier:
openssl aes-256-cbc -md md5 -in hotmama.tar.bz2.enc -out hotmama.tar.bz2 enter aes-256-cbc encryption password: Verifying - enter aes-256-cbc encryption password:
Reacties
- In de tweede commando, je bent niet aan het decoderen (
-d
) …
Answer
De algemene oorzaak van deze fout is dat de sleutel die door OpenSSL op basis van het wachtwoord wordt berekend, onjuist is, wat betekent dat deze niet dezelfde is als de sleutel die de gegevens versleutelde.
Een reden waarom deze fout kan optreden in een andere situatie dan de oorspronkelijke vraag, is of u codeert met een andere tool dan OpenSSL, bijvoorbeeld codering in Java en decodering met SSL.
Zie hier de oplossing voor Java: https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564
-nosalt
of een echt oude OpenSSL (voor maximaal 0.9.6) doet dat.