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
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
-nosalt
eller en virkelig gammel OpenSSL (før 0.9.6 på det meste) gjør det.