angka ajaib buruk pada dekripsi

12

Pada bulan April saya mengenkripsi file menggunakan perintah

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

Sekarang saya ingin mendekripsi dengan

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

tapi aku mendapat angka sihir yang buruk.

File dienkripsi kemarin dengan parameter yang sama mendekripsi ok.

Apa yang bisa terjadi? dan adakah di sana saya dapat mengambil file yang diarsipkan ini?

KathyHH
sumber

Jawaban:

6

Jika Anda dienkripsi dengan OpenSSL <= 1.0.2 dan Anda mendekripsi dengan OpenSSL 1.1.0 maka mungkin ini:

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

Hash default yang digunakan untuk membuat kunci dari kata sandi yang diubah antara 1.0.2 dan 1.1.0. Coba tambahkan -md md5ke perintah dekripsi Anda.

Matt Caswell
sumber
1
terima kasih aku takut itu mungkin seperti ini. Kita berada dalam situasi yang tidak biasa ingin mengembalikan sesuatu yang lama ini. Saya akan coba ini
KathyHH
1
Ketidakcocokan dalam pbe-hash default (atau menentukan hash yang salah atau hanya kata sandi yang salah) akan menyebabkan dekripsi sampah yang untuk cipher mode-CBC (seperti di sini) akan hampir selalu terdeteksi sebagai 06065064 'dekripsi buruk' - tetapi tidak ' angka ajaib buruk '. Hanya file yang rusak, atau yang dienkripsi dengan -nosaltatau OpenSSL yang benar - benar kuno (sebelum paling banyak 0.9.6) yang melakukannya.
dave_thompson_085
1

Perintah di bawah ini membuatku kesakitan:

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

Dan perintah di bawah ini menyelesaikannya, dan memberi saya kesenangan:

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:
typelogic
sumber
6
Pada perintah kedua, Anda tidak mendekripsi ( -d) ...
dangonfast
1

Penyebab umum untuk kesalahan ini adalah bahwa kunci yang dihitung oleh OpenSSL dari kata sandi salah, artinya tidak sama dengan kunci yang mengenkripsi data.

Salah satu alasan mengapa kesalahan ini dapat muncul, dalam situasi yang berbeda dari pertanyaan awal, adalah jika Anda mengenkripsi menggunakan alat lain selain OpenSSL, misalnya mengenkripsi di Jawa, dan mendekripsi menggunakan SSL.

Lihat solusi di sini untuk Java: /programming/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Vic Seedoubleyew
sumber