dårlig magisk nummer ved dekryptering

I april krypterte jeg en fil med kommandoen

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

Nå vil jeg dekryptere den med

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

men jeg får dårlig magisk nummer.

En fil kryptert i går med samme parametere dekrypterer ok.

Hva kunne ha skjedd? og er det uansett jeg kan hente denne arkiverte filen?

Svar

Hvis du er kryptert med OpenSSL < = 1.0.2, og du dekrypterer med OpenSSL 1.1.0, så er det sannsynligvis dette:

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

Standard hash brukes til å generere nøkkelen fra passordet endret mellom 1.0.2 og 1.1.0. Prøv å legge til -md md5 i dekrypteringskommandoen.

Kommentarer

  • takk, jeg var redd det kan være noe slik dette Vi er i en uvanlig situasjon som ønsker å gjenopprette noe så gammelt. Jeg vil prøve dette
  • En uoverensstemmelse i standard pbe-hash (eller spesifisering av feil hash eller bare feil passord) vil føre til søppel dekryptering som for en CBC-modus kryptering (som her) nesten alltid vil bli oppdaget som 06065064 ' dårlig dekryptering ' – men ikke ' dårlig magisk nummer '. Bare en skadet fil, eller en kryptert med -nosalt eller en virkelig gammel OpenSSL (før 0.9.6 på det meste) gjør det.

Svar

Kommandoen nedenfor ga meg smerte:

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

Og kommandoen nedenfor løste det og ga meg glede:

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 andre kommando, du dekrypterer ikke (-d) …

Svar

Den generelle årsaken til denne feilen er at nøkkelen beregnet av OpenSSL fra passordet er feil, noe som betyr at den ikke er den samme som nøkkelen som krypterte dataene.

En grunn til at denne feilen kan vises opp, i en annen situasjon enn det opprinnelige spørsmålet, er om du krypterer ved hjelp av et annet verktøy enn OpenSSL, for eksempel kryptering i Java, og dekryptering ved hjelp av SSL.

Se løsningen her for Java: https://stackoverflow.com/questions/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *