Как мне расшифровать сообщение, используя CLI openssl?

8

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

Я вижу шифр в выходных данных ciphersкоманды, и на странице man перечислены encкоманды для Encoding with Ciphers, но я не могу найти, как бы я поступил наоборот, расшифровав сообщение.

user50849
источник
1
Какая программа используется для шифрования файла? Весьма вероятно, что программа шифрования добавляет метаданные к зашифрованному содержимому, такие как вектор инициализации, соль, версия программы и т. Д. Если вы рассматриваете целое как зашифрованные биты, вы получите мусор.
Сиюань Рен
Поздно, но: openssl ciphersперечисляет наборы шифров для SSL / TLS, которые на практике никогда не основаны на паролях, и не оставляют сообщения там, где вы могли бы впоследствии расшифровать (т. Е. Если у вас есть файл, это не SSL / TLS). openssl encэто одна из наиболее часто используемых схем шифрования на основе пароля, но есть CMS и (редко) SE / MIME PBE и обычные PBP PGP, а также схемы PBE для ключей, которые не совсем точно описаны как сообщения, а также другие PBE.
dave_thompson_085

Ответы:

1

Я думаю, что вы ищете что-то вроде этого:

openssl yourcipher -d < yourfile

Например, если файл был зашифрован с использованием des3шифра, а /path/to/file.des3затем файл :

openssl des3 -d < /path/to/file.des3

Он попросит вас ввести пароль.

Если файл закодирован в base64, то вы сможете декодировать и расшифровывать так:

openssl enc -base64 -d < /path/to/file | openssl yourcipher -d
Янош
источник
Пытаясь это, после ввода ключевой фразы, я получаю «плохой магический номер». Не уверен, как это интерпретировать.
user50849 15.01.14
Эта ошибка встречается часто, когда файл на самом деле не является зашифрованным файлом ... Может быть, вам нужно сначала распаковать его?
Янош
1
Если я правильно понял мои инструкции, мой файл закодирован в base64 (он также выглядит как base64, хотя это, конечно, не гарантирует). Но я попытался передать его, base64 -d [input] > [output]а затем openssl [cipher] -d < [output]расшифровать файл, как есть, и в обоих случаях получаю одинаковое «неверное магическое число».
user50849
@ user50849 Я обновил свой ответ, думая, что, похоже, вы уже это делаете ... После того, как вы декодируете из base64, что fileкоманда скажет вам? Является ли файл двоичным?
Janos
Я попробовал вашу добавленную команду base64, и, к сожалению, я получаю ту же ошибку. Файл говорит dataо декодированном файле. Я предполагаю, что ваш ответ правильный и что-то не так с моей стороны. Возможно, я повредил ввод или подобное. Я постараюсь решить это и вернусь.
user50849