dåligt magiskt nummer vid dekryptering

I april krypterade jag en fil med kommandot

openssl enc -aes-256-cbc -salt -pass file:<passwordfile> < infile > outfil 

Nu vill jag dekryptera det med

openssl enc -d -aes-256-cbc -salt -pass file:<passwordfile> -in outfil -out infile2 

men jag får dåligt magiskt nummer.

En fil krypterad igår med samma parametrar dekrypterar ok.

Vad kunde ha hänt? och finns det ändå kan jag hämta den arkiverade filen?

Svar

Om du krypteras med OpenSSL < = 1.0.2 och du dekrypterar med OpenSSL 1.1.0 så är det antagligen detta:

https://www.openssl.org/docs/faq.html#USER3

Standard hash som används för att generera nyckeln från lösenordet ändrat mellan 1.0.2 och 1.1.0. Försök att lägga till -md md5 i ditt dekrypteringskommando.

Kommentarer

  • tack, jag var rädd att det kan vara något så här Vi är i en ovanlig situation som vill återställa något så gammalt. Jag kommer att prova detta
  • En ojämnhet i standardinställningen pbe-hash (eller att ange fel hash eller bara fel lösenord) kommer att orsaka sopkryptering som för en CBC-läge-kryptering (som här) nästan alltid kommer att identifieras som 06065064 ' dålig dekryptering ' – men inte ' dåligt magiskt nummer '. Endast en skadad fil, eller en som är krypterad med -nosalt eller en riktigt forntida OpenSSL (högst före 0.9.6) gör det.

Svar

Kommandot nedan gav mig smärta:

openssl aes-256-cbc -d -in hotmama.tar.bz2.enc -out hotmama.tar.bz2 enter aes-256-cbc decryption password: bad magic number 

Och kommandot nedan löste det och gav mig glädje:

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: 

Kommentarer

  • I andra kommandot, du dekrypterar inte (-d) …

Svar

Den allmänna orsaken till detta fel är att nyckeln som beräknas av OpenSSL från lösenordet är fel, vilket betyder att den inte är densamma som nyckeln som krypterade data.

En anledning när detta fel kan upp, i en annan situation än den ursprungliga frågan, är om du krypterar med ett annat verktyg än OpenSSL, till exempel kryptering i Java och dekryptering med SSL.

Se lösning här för Java: https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *