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;
}