
Я шифрую файл на машине 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
последнее принято считать условностью, первый слой «луковицы» — это зашифрованные данные, а не архивированные данные.