VISWESWARAN1998 Ответов: 3

Как добавить библиотеки openssl в Visual Studio/Codeblocks


Сэр,я искал в google для поиска SHA(Secure Hash Algorithm) с помощью программы C и узнал о библиотеке Openssl, которая будет использоваться для поиска SHA и т. д.,

Я скачал двоичный файл Openssl Rar и извлек его.Но я не знаю, как добавить библиотеку Openssl в мою visual studio, потому что мне нужен этот заголовочный файл для поиска SHA

#include <openssl/sha.h>


При извлечении openssl rar fie я вижу много папок, исходных файлов c и заголовочных файлов, что довольно запутанно.

Обычно я предпочитаю кодовые блоки для программирования на C и C++, поэтому не знаю, как добавить эти библиотеки в visual studio.
Что же мне теперь делать?
Есть ли другие лучшие способы найти SHA с помощью программирования на C/C++ даже вручную?

Пожалуйста, помогите мне с этим.

3 Ответов

Рейтинг:
2

George Jonsson

Это зависит от того, есть ли у вас статические библиотечные файлы (.lib) или только исходный код (.c)

Если у вас есть только c-файлы, то вы можете добавить их в свой проект и включить заголовочные файлы там, где вам это нужно. Как добавить существующие элементы в проект[^]

Если у вас есть библиотечные файлы, смотрите эту ссылку: MSDN: файлы .Lib в качестве входных данных компоновщика[^]

[ОБНОВЛЕНИЕ]
Для копирования содержимого содержимого из одной переменной в другую можно использовать раздел memcpy_s[^]

char szSha1Value[40];
memcpy_s(szSha1Value, sizeof(szSha1Value), *arr, strlen(*arr));

(Не совсем уверен, что разыменование arr правильно, см. Указатели[^])


[no name]

Сэр, я попробовал добавить заголовочный файл, и мой код работает примерно так

char **arr = CALL_Function("C:\\Users\\User\\Desktop\\hello.exe");

и печатает значение SHA-1 Как
"3bc2e8ca3fdc172eb752131c391adf2f"
теперь мой вопрос заключается в том, как скопировать это значение в новую переменную, чтобы я мог сравнить переменные.

George Jonsson

Ну а что же делает переменная arr сдерживать? (очень описательное название, надо сказать)

[no name]

Используя заголовочный файл, мы можем вызвать функцию с именем "CALL_FUNCTION" переменная char **arr используется для поиска значения SHA-1 по CALL_FUNCTION(char *string);где char *string-это расположение файла.
Я только что дал Арру любое имя, которое можно дать.

George Jonsson

Итак, переменная arr содержит вычисленное значение SHA1?

[no name]

- Да, сэр.

George Jonsson

Так почему бы не скопировать содержимое этой переменной в другую, если это то, что вы хотите сделать?

[no name]

голец **Висс= CALL_Function("C:\\Users\\User\\Desktop\\hello.exe");
char get = gets(viss);

Сэр, я пытался получить то же самое значение для другой переменной, но оно показывает ошибку.[ошибка преобразования char**].Я искал в Google, но не нашел того, что ожидал.Как это можно сделать?

George Jonsson

gets-это неправильный метод для использования. (посмотрите его функциональность)

Смотрите мой обновленный ответ.

[no name]

Сэр, в соответствии с вашим предложением я изменил свой код, но он запускает точку останова.Пожалуйста, помогите мне с этим.
Вот мой код:

char x[41];
Call_Function(х);
cout << x;
//Здесь x - переменная для вывода значения.Здесь x содержит значение SHA1
Согласно вашему предложению я сделал это:

char *k;
k = (char*)malloc(_MAX_PATH);
memcpy(k, x, _MAX_PATH);
for (int i = 0;i <= _MAX_PATH;i++) {
cout << k[i];
бесплатно(k);
Я использую Visual Studio 2015, программа компилируется без каких-либо ошибок.Но когда я добавил местоположение, оно показывает "myapplication.exe-сработала точка останова.

Рейтинг:
2

Albert Holguin

Здесь[^] являются инструкциями по сборке для Windows (32bit, есть другой документ для 64bit). После того как вы построили и установили библиотеки OpenSSL, добавить пути к заголовочным файлам (в OpenSSL/включить или inc32/) в Visual Studio библиотеки путей и библиотека бинарные путей (в OpenSSL/lib или out32dll/) на ваш компоновщик пути.

Существуют также предварительно скомпилированные версии доступный[^], поставляется с установщиком, так как он должен установить несколько частей.


[no name]

Сэр, я попробовал добавить заголовочный файл, и мой код работает примерно так

голец **ша = CALL_Function("C:\\Users\\User\\Desktop\\hello.exe");

и печатает значение SHA-1 Как
"3bc2e8ca3fdc172eb752131c391adf2f"
теперь мой вопрос заключается в том, как скопировать это значение в новую переменную, чтобы я мог сравнить переменные.

Рейтинг:
1

Member 14003186

Я понимаю, что это была тяжелая работа в течение долгого времени. Я установил openssl-1.1.0 h и сделал так, чтобы он работал с Visual Studio 2017
Я создаю подпапку в c:\openssl-1.1.0h и поместите файлы openssl в эту папку.
(У меня есть Visual Studio на испанском языке, так что вполне возможно, что некоторые пункты меню названы неправильно). Это мой опыт, а не учебник. Это была большая работа.
Ниже приведены следующие шаги:

I. - я скачиваю OpenSSL (openssl-1.1.0 h), PERL и NASM

II.- я установил PERL и NASM

III.- Я установил OpenSSL, но это было нелегко
1) я открываю консольные окна, но не обычные (не консоль получаю, написав cmd или что-то в этом роде)
Я открываю консоль из собственного инструмента, это подпапка из visual studio:
Пуск->Все программы->Visual Studio 2017->Visual Studio Tools->VC->системный символ собственных инструментов x64
2) cd \openssl-1.1.0 h
3) путь c;\program files\nasm\;%path%;
4) промилле установки существует несколько вариантов покупки
5) perl Configure VC-WIN64A
6) nmake
7) тест nmake
8) Установка nmake
И наконец-то работает установка!!!

IV.- Когда я попытался скомпилировать sw в visual studio, он не скомпилировался. Была проблема компоновщика с библиотечным файлом (я думаю, libcrypto.lib).
1) Страница свойств проекта->Компоновщик->ввод->Дополнительные зависимости.
Файл, включая путь, должен быть записан здесь, в моем случае:

C:\openssl-1.1.0h\libcrypto.lib
2) с помощью консольного инструмента, включенного в Visual Studio, я проанализировал этот файл: Программа dumpbin
Я проанализировал отчет dumbin и понял, что файл библиотеки предназначен для x64, поэтому мне пришлось создать конфигурацию x64 в Visual Studio.
Это тоже было неестественно:...

V. - компиляция для x64. Я нашел это веб-страница справки (на испанском языке)

1) в visual Studio 2017 ->;Compile->;Configuration Manager
2) в конфигурации активного решения я дал "Debug" (начальное значение) и в платформе активной конфигурации выбрал "New", а затем открылось новое окно
3) в поле "написать или выбрать новую платформу" я выбираю "win32", а в поле "скопировать конфигурацию из" Я выбираю x64 и нажимаю кнопку Принять.Активные окна были закрыты.
4) После этого последние окна, в которых есть список контекста проекта (в моем случае был доступен только один контекст) Я даю "отладку" в поле конфигурации, а в платформе выбираю "x64" и нажимаю на кнопку Закрыть
5) я закрываю проект полностью и открываю снова (я не уверен, что это необходимо, но я сделал это и работает)
6) После этого я составил проект.....

Проект не компилировался, но список ошибок теперь был другим.Включенные файлы openssl не были найдены. Причина была в том, что
папка include openssl не была добавлена в проект. Я добавляю openssl-1.10 h и openssl-1.10 h\include в проект.
Для этого я выполняю следующие шаги.
1) в обозревателе решений с выбранным проектом (это означает, что один уровень ниже решения) Я нажал на значок гаечного ключа (чтобы получить свойство проекта)
2) в свойстве конфигурации-> VC Directory->Include file directory я добавил папки openssl-1.10 h и openssl-1.10 h\include
3) я снова компилирую, и проект не компилируется должным образом, но теперь компиляция сообщает о том, что некоторые PDB-файлы отсутствуют (я читал на форуме, что эти файлы не так важны), а после этого появляется сообщение о том, что проект был близок с кодом (0xc0000135). Это был отсутствующий файл, но он не был идентифицирован в отчете о компиляции. Чтобы узнать, что это за файл, мне пришлось использовать для этого инструмент. Этот инструмент нужно скачать и положить в папку (установка была очень простой, значок не был добавлен, только скачан и скопирован в папку):
Ходок По Зависимостям. В папке я выполнил файл "depends.exe".
4) я выбираю опцию Открыть файл в меню
5) в открытом окне доступно 5 панелей. Некоторые из них были чистыми, а в других было дерево (например, дерево папок), в котором отсутствовал файл с
желтый значок и сообщение о том, что файл пропал (libcrypto-1_1-x64.dll). Я дважды щелкнул по этому файлу и файл был найден
в папке были найдены exe - файлы моего проекта.
6) я скопировал (libcrypto-1_1-x64.dll) файл .exe-файл моего проекта (myproject.exe). В любом случае некоторые файлы отсутствовали, но я думаю, что это было не важно.
7) я снова скомпилировал проект
И проект составлен!!!!!