- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 openssl 对一个简单的字符串进行编码,而不需要对其进行解密。我正在使用这些功能
AES_set_encrypt_key()
AES_cfb128_encrypt()
我需要我认为只有包括:
#include <openssl/aes.h>
我无法在网络或 openssl 网站上找到有关如何为 visual studio 项目编译源代码的说明。有谁知道应该怎么做?我可以只编译与这两个功能相关的代码吗?
非常感谢
最佳答案
我知道您想在代码中使用这些函数。您不需要为此编译 OpenSSL。
在您的开发机器上安装包(如果为 Windows 开发,您可以获得最新的安装程序 here )。它将包含您需要包含在代码中的头文件(它们将位于 c:\OpenSSL-Win32\include\openssl
),您需要链接应用程序的静态库(在 c:\OpenSSL-Win32\lib\VC
) 和您的应用程序需要运行的 DLL(在 c:\OpenSSL-Win32\bin
中)。
因此,在您的代码中您将拥有:
#include <openssl/aes.h>
...
AES_set_encrypt_key(...);
...
AES_cfb128_encrypt(...);
...
您的编译器需要知道您包含的 header 的路径(openssl
目录的路径),因此您需要提供它。如果您使用的是 Visual Studio,请打开项目设置并将 c:\OpenSSL-Win32\include
添加到 Additional Include Directories。
在链接器部分,将 ssleay32MDd.lib;libeay32MDd.lib;
添加到附加依赖项,以便您的链接器知道要查找哪些 OpenSSL 库。这些库的路径 - c:\OpenSSL-Win32\lib\VC
- 添加到其他库目录。
小心使用这些库:它们需要链接到与您的应用程序相同的运行时库。它们的后缀告诉您它们链接到哪个运行时库:我上面提到的库具有后缀 MDd,这意味着它们使用多线程调试 DLL (/MDd) - 因此如果您的应用程序使用相同的运行时,您将包括它们(在代码中查看)生成->运行时库设置)。
您的应用程序现在将构建,但要运行它,您的二进制文件将需要访问依赖于它的 OpenSSL DLL libeay32.dll
。将该 DLL 复制到系统目录或您运行应用程序的目录,或将路径 c:\OpenSSL-Win32\bin
添加到 Path
环境变量。
关于c++ - 如何只为两个函数编译openssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7901683/
我是一名优秀的程序员,十分优秀!