linux下MD5的API编程

下载安装openssl

链接:https://pan.baidu.com/s/1eyEgqFI90FG6nIIZIY-H1g 密码:5e7c


或者 

API

    该函数初始化该结构体。成功返回1,失败返回0.


    该函数对输入参数data,进行md5计算。成功返回1,失败返回0.


    该函数把结果输出至缓存md中。成功返回1,失败返回0.


示例1

#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <stdlib.h>
# include <openssl/md5.h>



int main(int argc, char *argv[])
{
	MD5_CTX md5;
	const char data[] = "hello";
	unsigned char md[32] = {0};
	if (!MD5_Init(&md5)){
		printf("MD5_Init error\n");
		return -1;
	}
	if (!MD5_Update(&md5, data, strlen(data))){
		printf("MD5_Update error\n");
		return -1;
	}
	if (!MD5_Final(md, &md5))
	{
		printf("MD5_Final error\n");
		return -1;
	}
	for (int i = 0;i<32;i++){
		printf("%02X", md[i]);
	}
	return 0;
}

示例2

#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <stdlib.h>
# include <openssl/md5.h>



int main(int argc, char *argv[])
{
	MD5_CTX ctx;
	unsigned char buff[1024] = {0};
	FILE *fp = NULL;
	int len = 0, i;
	unsigned char md5[16] = {0};
	fp = fopen("./md5_1.c", "rb");
	if (fp == NULL){
		printf("fopen error\n");
		return -1;
	}

	while((len=fread(buff, 1, sizeof(buff), fp)) > 0){
		MD5(buff, len, md5);
		memset(buff, 0x00, 1024);
	}

	for (i = 0;i<16;i++){
		printf("%02x", md5[i]);
	}
	printf("\n");
	if (fp){
		fclose(fp);
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_33408113/article/details/80345742