首页 > 代码库 > linux之md5库

linux之md5库

在使用md5函数之前要先安装openssl,以及libssl-dev。

包含头文件:#include <openssl/md5.h>

两种方式:

第一种:

int MD5_Init(MD5_CTX *c);
int MD5_Update(MD5_CTX *c, const void *data, size_t len);
int MD5_Final(unsigned char *md, MD5_CTX *c);

三个函数联合使用,适合文件校验。

第二种:

unsigned char *MD5(const unsigned char *d, unsigned long n,unsigned char *md);

适合密码加密。


文件校验

#include <openssl/md5.h>
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;

int main()
{
	FILE *fd=fopen("tmp.txt","r");
	MD5_CTX c;
	unsigned char md[16];
	int len;
	char tmp[3]={'\0'}, md5buf[33]={'\0'};
	unsigned char buffer [1024]={'\0'};
	MD5_Init(&c);
	while( 0 != (len = fread(buffer, 1, 1024, fd) ) )
	{
	        MD5_Update(&c, buffer, len);
	}
	MD5_Final(md,&c);
	for(int i = 0; i < 16; i++)
	{
	 	sprintf(tmp,"%02X",md[i]);
		strcat(md5buf,tmp);
	}
	cout<<md5buf<<endl;
	fclose(fd);
	return 0;
}

密码加密


#include <openssl/md5.h>
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main()
{
	 string data = http://www.mamicode.com/"helloworld";>

编译时指定库文件:-lcrypto