📄 main.c
字号:
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <openssl/evp.h>
void tDigest()
{
unsigned char md_value[EVP_MAX_MD_SIZE]; //保存输出的摘要值的数组
int md_len, i;
EVP_MD_CTX mdctx; //EVP消息摘要结构体
char msg1[] = "Test Message1"; //待计算摘要的消息1
char msg2[] = "Test Message2"; //待计算摘要的消息2
EVP_MD_CTX_init(&mdctx); //初始化摘要结构体
EVP_DigestInit_ex(&mdctx, EVP_md5(), NULL); //设置摘要算法和密码算法引擎,这里密码算法使用MD5,算法引擎使用OpenSSL默认引擎即软算法
EVP_DigestUpdate(&mdctx, msg1, strlen(msg1));//调用摘要UpDate计算msg1的摘要
EVP_DigestUpdate(&mdctx, msg2, strlen(msg2));//调用摘要UpDate计算msg2的摘要
EVP_DigestFinal_ex(&mdctx, md_value, &md_len);//摘要结束,输出摘要值
// EVP_Digest(msg1, strlen(msg1), md_value, &md_len, EVP_md5(), NULL);
EVP_MD_CTX_cleanup(&mdctx); //释放内存
printf("原始数据%s和%s的摘要值为:\n",msg1,msg2);
for(i = 0; i < md_len; i++)
{
printf("0x%02x ", md_value[i]);
}
printf("\n");
}
int main()
{
OpenSSL_add_all_algorithms();
tDigest();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -