OpenSSL EVP_md5 消息摘要

本文展示了一个使用OpenSSL库中的MD5算法计算消息摘要的C语言程序示例。该程序将两个字符串作为输入,并输出它们的MD5摘要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
#include <string.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_MD_CTX_cleanup(&mdctx);//释放内存
	
	printf("原始数据%s和%s的128位消息摘要值为:\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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值