首先需要安装openssl库
sudo apt-get install openssl
sudo apt-get install libssl-dev
实现代码
#include <openssl/evp.h>
#include <stdio.h>
#include <string.h>
int main()
{
EVP_MD_CTX* ctx;
ctx = EVP_MD_CTX_new();
EVP_MD_CTX_init(ctx);
unsigned int targetDataLength = 0;
unsigned char sourceData[1024] = "hello word";
unsigned char targetData[1024] = {0};
//设置摘要算法
EVP_DigestInit_ex(ctx, EVP_md5(), NULL);
//计算摘要
EVP_DigestUpdate(ctx, sourceData, strlen((char*)sourceData));
//输出摘要值
EVP_DigestFinal_ex(ctx, targetData, &targetDataLength);
//16进制打印
for(int i = 0; i < targetDataLength; i++)
{
printf("%.02x", targetData[i]);
}
printf("\n");
EVP_MD_CTX_free(ctx);
}
编译命令
gcc main.cpp -o res -lcrypto