У меня есть текстовый файл. Мне нужно зашифровать этот файл паролем. В командной строке (-k для пароля и -nosalt -des3) используются. Есть ли какой-нибудь образец для достижения того же в C API.
Шифрование файла с помощью openssl с паролем на C
Ответы (2)
Openssl содержит множество подпрограмм для различных криптографических систем, включая DES. Возможно, вам нужна функция DES_ncbc_encrypt или один из других вариантов, все они описаны на справочной странице des(3).
Если вы работаете в системе Linux, вы можете использовать функцию crypt. Его прототип:
#include <unistd.h>
char * crypt(const char *key, const char *salt);
Вот его описание (man 3 crypt):
Функция crypt() выполняет шифрование паролей на основе стандарта шифрования данных NBS (DES). Добавлен дополнительный код для предотвращения попыток поиска ключа. Первый аргумент функции crypt() — это строка с завершающим нулем, обычно пароль, введенный пользователем. Второй имеет одну из двух форм: если он начинается со знака подчеркивания (``_''), расширенный формат используется при интерпретации как ключа, так и солт-значения, как показано ниже.