Проблема с шифрованием и дешифрованием бинарных файлов - PullRequest
0 голосов
/ 20 августа 2010

Как я могу зашифровать и расшифровать двоичные файлы в C, используя OpenSSL?

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

Я выполнил свою тестовую программу для текстафайлы, и выходные данные совпадают с входными данными, но когда я выполняю свою тестовую программу для двоичного файла, выходные данные не совпадают с входными данными.

Ответы [ 3 ]

1 голос
/ 20 августа 2010

Скорее всего, вы используете строковые функции, такие как strlen() в буферах, которые вы читаете. Функции OpenSSL отлично работают для двоичных файлов.

1 голос
/ 20 августа 2010

Не видя ваш код, мы можем только догадываться. Но мое первое предположение состоит в том, что ваша процедура шифрования или дешифрования использует символ \ 0 или два в двоичном файле. Данные должны обрабатываться как байты, а не как символьные строки. (То же, что и проблема StrLen (), упомянутая в другом месте на этой странице.)

Я не программист на C (!), Но мне удалось заставить подпрограммы шифрования работать в Delphi / Pascal, загрузив исходный код OpenSSL (в C) и пройдя по коду для приложение openssl.exe. Использование функций EVP_ * стало намного проще, когда вы сами поймете, как они это делают.

1 голос
/ 20 августа 2010

Просто угадайте: вы используете Windows и пропустили флаг O_BINARY в файловых операциях?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...