slecht magisch getal bij decoderen

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

  • bedankt, ik was bang dat het iets zou kunnen zijn zoals dit We bevinden ons in een ongebruikelijke situatie waarin we zoiets ouds willen herstellen. Ik zal dit proberen
  • Een mismatch in de standaard pbe-hash (of het specificeren van de verkeerde hash of gewoon het verkeerde wachtwoord) zal garbage decoderen veroorzaken, wat voor een CBC-moduscijfer (zoals hier) bijna altijd zal gebeuren worden gedetecteerd als 06065064 ' slecht decoderen ' – maar niet ' slecht magisch getal '. Alleen een beschadigd bestand, of een bestand dat is versleuteld met -nosalt of een echt oude OpenSSL (voor maximaal 0.9.6) doet dat.

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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *