c语言怎么添加openssl库,C语言openssl库MD5调用

这段代码展示了如何用C语言通过MD5库计算文件和字符串的哈希值。首先打开文件,然后读取文件内容,每次读取后更新MD5上下文,最后输出文件的MD5哈希。同样,对于字符串,直接计算其MD5并输出。运行结果显示了文件和字符串的MD5值。

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

1.源码实现

#include

#include

#include

#include

#define MAX_DATA_LEN 1024

#define MD5_LENTH 16

int main(int argc, char **argv)

{

MD5_CTX md5_ctx;

FILE *fp = NULL;

char *strFilePath = argv[1];

unsigned char MD5result[MD5_LENTH];

char DataBuff[MAX_DATA_LEN];

int len;

int t = 0;

int i;

fp = fopen(strFilePath, "rb"); //打开文件

do

{

MD5_Init(&md5_ctx);

while(!feof(fp))

{

memset(DataBuff, 0x00, sizeof(DataBuff));

len = fread(DataBuff, 1, MAX_DATA_LEN, fp);

if(len)

{

t += len;

//printf("len = [%d] 1\n", len);

MD5_Update(&md5_ctx, DataBuff, len); //将当前文件块加入并更新MD5

}

}

//printf("len = [%d]\n", t);

MD5_Final(MD5result,&md5_ctx); //获取MD5

puts("file MD5:");

for(i = 0; i

{

printf("%02x", (int)MD5result[i]);

}

puts("\n");

} while(0);

fclose(fp);

MD5((const unsigned char*)strFilePath, strlen(strFilePath), MD5result); //获取字符串MD5

puts("string MD5:");

for(i = 0; i < MD5_LENTH; i++)

{

printf("%02x", (int)MD5result[i]);

}

puts("\n");

return 0;

}

2.编译源码

$ gcc -I$HOME/local/include -o example example.c -L$HOME/local/lib -lssl

3.运行结果

$ ./example file

file MD5:

a8f224f931787808abaabbccbd04fff3

string MD5:

a87ff679a2f3e71d9181a67b7542122c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值