Шифрование файла с помощью openssl с паролем на C

У меня есть текстовый файл. Мне нужно зашифровать этот файл паролем. В командной строке (-k для пароля и -nosalt -des3) используются. Есть ли какой-нибудь образец для достижения того же в C API.


person Raja    schedule 24.02.2011    source источник
comment
возможный дубликат Нужен пример кода C для шифрования и расшифровка файлов с помощью openssl   -  person Jouni K. Seppänen    schedule 29.04.2014


Ответы (2)


Openssl содержит множество подпрограмм для различных криптографических систем, включая DES. Возможно, вам нужна функция DES_ncbc_encrypt или один из других вариантов, все они описаны на справочной странице des(3).

person Chris Dodd    schedule 24.02.2011

Если вы работаете в системе Linux, вы можете использовать функцию crypt. Его прототип:

#include <unistd.h> 
char * crypt(const char *key, const char *salt);

Вот его описание (man 3 crypt):

Функция crypt() выполняет шифрование паролей на основе стандарта шифрования данных NBS (DES). Добавлен дополнительный код для предотвращения попыток поиска ключа. Первый аргумент функции crypt() — это строка с завершающим нулем, обычно пароль, введенный пользователем. Второй имеет одну из двух форм: если он начинается со знака подчеркивания (``_''), расширенный формат используется при интерпретации как ключа, так и солт-значения, как показано ниже.

person Dimitri    schedule 24.02.2011
comment
Функция шифрования усекает пароли, использует только DES1 и выводит в формате, похожем на base64, так что это может быть не то, что хотел автор. - person user611775; 24.02.2011
comment
Извините, я неправильно понял вопрос. Я не видел тег openssl. Должен ли я удалить свой ответ? - person Dimitri; 26.02.2011