số ma thuật xấu trên giải mã


12

Vào tháng Tư, tôi đã mã hóa một tập tin bằng lệnh

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

Bây giờ tôi muốn giải mã nó với

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

nhưng tôi nhận được số ma thuật xấu.

Một tập tin được mã hóa ngày hôm qua với cùng thông số giải mã ok.

Những gì có thể đã xảy ra? và có cách nào tôi có thể lấy lại tập tin lưu trữ này không?

Câu trả lời:


6

Nếu bạn đã mã hóa bằng OpenSSL <= 1.0.2 và bạn đang giải mã bằng OpenSSL 1.1.0 thì có lẽ đây là:

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

Hàm băm mặc định được sử dụng để tạo khóa từ mật khẩu đã thay đổi giữa 1.0.2 và 1.1.0. Hãy thử thêm -md md5vào lệnh giải mã của bạn.


1
cảm ơn tôi đã sợ nó có thể là một cái gì đó như thế này Chúng tôi đang ở trong một tình huống bất thường muốn khôi phục lại thứ gì đó cũ kỹ này. Tôi sẽ thử cái này
KathyHH

1
Một sự không phù hợp trong pbe-hash mặc định (hoặc chỉ định băm sai hoặc chỉ là mật khẩu sai) sẽ gây ra sự giải mã rác mà đối với một mật mã chế độ CBC (như ở đây) sẽ luôn luôn được phát hiện là 06065064 'giải mã xấu' - nhưng không phải là ' số ma thuật xấu '. Chỉ một tệp bị hỏng hoặc một tệp được mã hóa bằng -nosalthoặc một OpenSSL thực sự cổ xưa (nhiều nhất là trước 0.9.6) mới thực hiện được điều đó.
dave_thndry_085

1

Lệnh dưới đây đã cho tôi nỗi đau:

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

Và lệnh dưới đây đã giải quyết nó, và cho tôi niềm vui:

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:

6
Trong lệnh thứ hai, bạn không giải mã được ( -d) ...
dangonfast

1

Nguyên nhân chung cho lỗi này là do khóa được tính toán bởi OpenSSL từ mật khẩu là sai, có nghĩa là không giống với khóa đã mã hóa dữ liệu.

Một lý do khi lỗi này có thể xuất hiện, trong một tình huống khác với câu hỏi ban đầu, là nếu bạn đang mã hóa bằng một công cụ khác ngoài OpenSSL, ví dụ như mã hóa trong Java và giải mã bằng SSL.

Xem giải pháp tại đây cho Java: /programming/22610761/aes-simple-encrypt-in-java-decrypt-with-openssl/55884564#55884564

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.