3

Я шифрую файл на машине с Ubuntu с помощью openSSL, используя следующую команду:

openssl enc -aes-256-cbc -in mydbBackup.tar -out  mydbBackup.enc.tar 
     -pass pass:scecret

Я передаю его на FTP-сервер. Теперь, когда я копирую файл с ftp на другую машину и пытаюсь расшифровать его с помощью следующей команды:

openssl enc -aes-256-cbc -d -in mydbBackup.tar -out  mydbBackup.enc.tar 
     -pass pass:scecret

Я получаю следующую ошибку:

bad decrypt
139727625037472:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:
bad decrypt:evp_enc.c:467:

Это какая-то проблема из-за передачи файлов или невозможно расшифровать файлы, зашифрованные в другой системе?

РЕДАКТИРОВАТЬ:-

Я выполнил команду ls -l после запуска команды decrypt с (-out decrypt.tar.gz) и без (-out decrypt.tar.gz) солевого аргумента, и я получил следующий вывод:

-rw-r--r-- 1 backup backup 43119360 2012-01-29 07:10 encrypt-20120128.enc.tar.gz
-rw-r--r-- 1 backup backup 43119328 2012-01-29 07:12 decrypt1.tar.gz
-rw-r--r-- 1 backup backup 43119328 2012-01-29 07:12 decrypt.tar.gz

поэтому он что-то производит, но выдает ошибку, и tar жалуется, что полученный файл не является архивом gzip .

ОБНОВЛЕНИЕ:- Я вычислил контрольную сумму MD5 (как предложено @Oliver Salzburg) исходного файла и одного, перенесенного с ftp, и на удивление это дает одинаковое значение для обоих файлов.

21b95cb2431c5d61c93fe642d63ca7d0

2 ответа2

2

В общем, файл, зашифрованный таким образом, должен быть дешифруемым в другой системе (я только что проверил его, чтобы убедиться).

Таким образом, файл "битый" или что-то еще конфликтует с расшифровкой. Но я мог только делать предположения об этом. Я помню проблему, подобную этой, вызванную передачей ключа / сертификата в виде текста. К полученному файлу была прикреплена спецификация, что вызвало проблемы с процессом шифрования / дешифрования (он также был преобразован в Unicode, который тоже не помог).

1

Команда должна быть:

openssl enc -aes-256-cbc -d -in mydbBackup.enc.tar -out mydbBackup.tar
 -pass pass:scecret

Как упоминал Оливер, вход / выход для дешифрования является противоположностью входу / выходу шифрования.

также ставьте .enc последним в качестве соглашения, первый слой "лука" - это зашифрованные данные, а не заархивированные данные.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .