Скачать OpenSSL для Windows 64 бит
Для скачивания OpenSSL на Windows 64 необходимо выполнить следующие шаги:
1. Открыть браузер и перейти на официальный сайт OpenSSL по ссылке https://www.openssl.org/source/.
2. На странице загрузки необходимо выбрать нужную версию OpenSSL для Windows 64, которая на данный момент является OpenSSL 3.0.0. Для этого необходимо найти заголовок “Binary Releases” на этой странице и выбрать “Windows AMD64 / Intel 64 / Win64”.
3. После нажатия на нужную версию, скачается архив с бинарными файлами OpenSSL.
4. Распаковать архив в удобную папку на компьютере.
Готово. Теперь было бы неплохо настроить среду выполнения, чтобы можно было запускать команды OpenSSL.
Для того чтобы использовать команды OpenSSL в командной строке Windows, необходимо добавить путь к установленным бинарным файлам OpenSSL в переменную PATH. Например, если OpenSSL был установлен в C:\Program Files\OpenSSL-Win64\bin, то необходимо выполнить следующие шаги:
1. Зайти в “Панель управления” системы Windows.
2. Выбрать “Система и безопасность”.
3. Выбрать “Система”.
4. На странице информации о системе выбрать “Дополнительные параметры системы”.
5. В появившемся окне “Свойства системы” нажать на кнопку “Переменные среды”.
6. В новом окне “Переменные среды” найти переменную PATH и двойным щелчком открыть ее на редактирование.
7. Добавить в переменную PATH путь до папки с бинарными файлами OpenSSL через точку с запятой (;).
8. Нажать “ОК”.
Теперь можно запустить командную строку Windows и проверить, что OpenSSL установлен корректно, например, выполнить команду openssl version.
Пример кода с использованием OpenSSL для Windows 64 (на языке C++):
#include
#include
int main() {
unsigned char key[32];
unsigned char iv[16];
unsigned char data[] = "Hello, OpenSSL!";
unsigned char cipher[128];
unsigned char plaintext[128];
int data_len = strlen((const char*)data);
int cipher_len, plaintext_len;
// Генерируем случайный ключ и вектор инициализации
RAND_bytes(key, sizeof(key));
RAND_bytes(iv, sizeof(iv));
// Инициализируем контекст шифрования
EVP_CIPHER_CTX* ctx = EVP_CIPHER_CTX_new();
EVP_EncryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, key, iv);
// Шифруем данные
EVP_EncryptUpdate(ctx, cipher, &cipher_len, data, data_len);
EVP_EncryptFinal_ex(ctx, cipher + cipher_len, &cipher_len);
// Очищаем контекст шифрования
EVP_CIPHER_CTX_free(ctx);
// Выводим зашифрованные данные
printf("Cipher text: %s\n", cipher);
// Инициализируем контекст расшифровки
EVP_CIPHER_CTX* ctx2 = EVP_CIPHER_CTX_new();
EVP_DecryptInit_ex(ctx2, EVP_aes_256_cbc(), NULL, key, iv);
// Расшифровываем данные
EVP_DecryptUpdate(ctx2, plaintext, &plaintext_len, cipher, cipher_len);
EVP_DecryptFinal_ex(ctx2, plaintext + plaintext_len, &plaintext_len);
// Очищаем контекст расшифровки
EVP_CIPHER_CTX_free(ctx2);
// Выводим расшифрованные данные
printf("Plain text: %s\n", plaintext);
return 0;
}