openssl 在 windows clion的使用

参考博客:https://blog.csdn.net/dlc0313/article/details/125268423

我安装的openssl的下载地址:https://oomake.com/download/openssl

你去openssl官网,能下载源码,但是得自己编译,很麻烦算了。

openssl下载一个安装包,安装到你的指定位置。

安装时有一步是问你要把 openssl Dlls 复制到哪里去,我选的是复制到openssl的/bin下。

第一篇参考博客中还让

找到安装的bin目录,找到名字带有libssl和libcrypto的两个动态库,分别复制一个,命名为libssl.dll和libcrypto.dll,最后在环境变量的path中添加这个bin目录。

但是我没用做这一步,也可以正常使用

我的CMakeLists.txt

cmake_minimum_required(VERSION 3.19)
project(openssl_test)

set(CMAKE_CXX_STANDARD 20)


# 设置openssl的安装位置
set(opensslDir "D:/DevelopTools/Environment/OpenSSL-Win64")
# 设置头文件位置和动态库位置
set(INC_DIR ${opensslDir}/include)
set(LINK_DIR ${opensslDir}/bin)

# 使头文件可访问
include_directories(${INC_DIR})
# 指定动态库路径
link_directories(${LINK_DIR})
# 添加需要链接的库
link_libraries(ssl crypto)
add_executable(openssl_test main.cpp)

target_link_libraries(openssl_test ssl)

测试代码:

#include <iostream>
#include <openssl/evp.h>
#include <cstring>
using namespace std;

int main() {
    const char* str = "hello world";
    unsigned char md[33];

    EVP_MD_CTX* ctx = EVP_MD_CTX_new();
    EVP_MD_CTX_init(ctx);
    EVP_DigestInit(ctx, EVP_md5());
    EVP_DigestUpdate(ctx, str, strlen(str));

    unsigned int len;
    EVP_DigestFinal(ctx, md, &len);
    for (int i = 0; i < len; ++i) {
        printf("%02X",md[i]);
    }
    return 0;
}
文章目录