dårligt magisk nummer ved dekryptering

I april krypterede jeg en fil ved hjælp af kommandoen

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

Nu vil jeg dekryptere det med

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

men jeg får dårligt magisk nummer.

En fil krypteret i går med de samme parametre dekrypterer ok.

Hvad kunne der være sket? og er der alligevel, kan jeg hente denne arkiverede fil?

Svar

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

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

Standard-hash, der bruges til at generere nøglen fra adgangskoden ændret mellem 1.0.2 og 1.1.0. Prøv at tilføje -md md5 til din dekrypteringskommando.

Kommentarer

  • tak, jeg var bange for, at det måske var noget sådan her Vi er i en usædvanlig situation, der ønsker at gendanne noget så gammelt. Jeg vil prøve dette
  • En uoverensstemmelse i standardindstillet pbe-hash (eller angivelse af den forkerte hash eller bare den forkerte adgangskode) vil medføre skrald dekryptering, som for en CBC-mode-chiffer (som her) næsten altid vil blive registreret som 06065064 ' dårlig dekryptering ' – men ikke ' dårligt magisk nummer '. Kun en beskadiget fil eller en krypteret med -nosalt eller en virkelig gammel OpenSSL (højst før 0.9.6) gør det.

Svar

Kommandoen nedenfor gav mig 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 nedenstående kommando løste det og glædede mig:

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

Svar

Den generelle årsag til denne fejl er, at nøglen, der beregnes af OpenSSL fra adgangskoden, er forkert, hvilket betyder, at den ikke er den samme som nøglen, der krypterede dataene.

En af grundene til, at denne fejl kan vises op, i en anden situation end det oprindelige spørgsmål, er, om du krypterer ved hjælp af et andet værktøj end OpenSSL, for eksempel kryptering i Java, og dekryptering ved hjælp af SSL.

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *