Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Шифрование AES через библиотеку Openssl - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите пожалуйста с тестом по ООП http://www.cyberforum.ru/cpp/thread1171202.html
Помогите пожалуйста с тесттом! What does OOP stand for? Object-Oriented Programming Object-Oriented Post Organization-Object Programming Object-Organization Programming There is no correct...
C++ Браузер на C++. Штат 5 человек Здравствуйте. Такой вопрос вот с друзьями сидим обсуждаем идею касательно своего браузера, а именно реально ли в 5 написать браузер примерно за полгода и при этом не стать инвалидом?:) http://www.cyberforum.ru/cpp/thread1170695.html
XML Parser C++
Разбираюсь с open source проектом http://conv-net.sourceforge.net/doc/index.html свёрточная нейронная сеть вот, в котором в свою очередь как я понимаю для сохранения и считывания сети используется...
C++ Написать функцию, которая позволяет: исключить узел с заданной информационной частью
Написать функцию, которая позволяет: исключить узел с заданной информационной частью.
C++ Улучшения качества изображения путем его фильтрации http://www.cyberforum.ru/cpp/thread1165218.html
Может у кого есть приблизительный пример задачи: Задано многоградационное изображение в виде файла на вне- шнем магнитном носителе. Реализовать процедуру улучшения качества исходного...
C++ Wi-Fi роутер Всем добрый день. Хотелось попросить помощи в разработке программного средства перепрограммирования wi fi роутера. Посоветуйте литературу или обьясните как подойти к решению этого вопроса. Жду... подробнее

Показать сообщение отдельно
Krab91
1 / 1 / 0
Регистрация: 12.10.2013
Сообщений: 53

Шифрование AES через библиотеку Openssl - C++

10.05.2014, 12:51. Просмотров 1284. Ответов 0
Метки (Все метки)

Есть вот такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
void aes_encrypt()
{
    int outlen, inlen;
    FILE *in = fopen("data.dat", "rb"), *out = fopen("encrypt.aes", "wb");
    unsigned char inbuf[BUFSIZE], outbuf[BUFSIZE];
    unsigned char key[32]; /* 256- битный ключ */
    unsigned char iv[8]; /* вектор инициализации */
    const EVP_CIPHER * cipher;
    EVP_CIPHER_CTX ctx;
    /* обнуляем структуру контекста */
    EVP_CIPHER_CTX_init(&ctx);
    /* выбираем алгоритм шифрования */
    cipher = EVP_bf_ofb();
    /* инициализируем контекст алгоритма */
    EVP_EncryptInit(&ctx, cipher, key, iv);
    /* шифруем данные */
    for(;;)
    {
        inlen = fread(inbuf, 1, BUFSIZE, in);
        if(inlen <= 0) break;
        EVP_EncryptUpdate(&ctx, outbuf, &outlen, inbuf, inlen);
        fwrite(outbuf, 1, outlen, out);
    }
    EVP_EncryptFinal(&ctx, outbuf, &outlen);
    fwrite(outbuf, 1, outlen, out);
    EVP_CIPHER_CTX_cleanup(&ctx);
    fclose(in);
    fclose(out);
}
 
void aes_decrypt()
{
    int outlen, inlen;
    FILE *in = fopen("encrypt.aes", "rb"), *out = fopen("decrypt.aes", "wb");
    unsigned char inbuf[BUFSIZE], outbuf[BUFSIZE];
    unsigned char key[32]; /* 256- битный ключ */
    unsigned char iv[8]; /* вектор инициализации */
    const EVP_CIPHER * cipher;
    EVP_CIPHER_CTX ctx;
    /* обнуляем структуру контекста */
    EVP_CIPHER_CTX_init(&ctx);
    /* выбираем алгоритм шифрования */
    cipher = EVP_bf_ofb();
    /* инициализируем контекст алгоритма */
    EVP_DecryptInit(&ctx, cipher, key, iv);
    /* шифруем данные */
    for(;;)
    {
        inlen = fread(inbuf, 1, BUFSIZE, in);
        if(inlen <= 0) break;
        EVP_DecryptUpdate(&ctx, outbuf, &outlen, inbuf, inlen);
        fwrite(outbuf, 1, outlen, out);
    }
    EVP_DecryptFinal(&ctx, outbuf, &outlen);
    fwrite(outbuf, 1, outlen, out);
    EVP_CIPHER_CTX_cleanup(&ctx);
    fclose(in);
    fclose(out);
}
Но мне бы сделать так чтобы функция считывала не из файла, а с массива символов или со строки.Чтоб функция принимала(*char или *str). Кто может помогите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru