Расшифровать файл, закодированный на одной системе, с помощью openssl на другой системе

Расшифровать файл, закодированный на одной системе, с помощью openssl на другой системе

Я шифрую файл на машине 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команду после запуска команды расшифровки с ( -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

решение1

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

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

решение2

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

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

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

также .encпоследнее принято считать условностью, первый слой «луковицы» — это зашифрованные данные, а не архивированные данные.

Связанный контент