【学习记录】使用openSSL中的MD5库对字符串进行MD5加密

openssl的包名为openssl-devel,在ubuntu下可以直接apt-get install获取,但包名为libssl-dev。

sudo apt-get install libssl-dev

下载后,在程序中包含头文件<openssl/md5.h>即可。


使用MD5加密,openssl的MD5头文件中中提供了三个函数,分别是:

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);

使用以上三个函数完成字符串的MD5加密。


举个栗子:

/* 
* Author:		[email protected]
* 
* Created Time: 2014年05月26日 星期一 15时10分11秒
* 
* FileName:     ecrypt.h
* 
* Description:  编译加参数:-lssl -lcrypto
*
*/

#ifndef _ENCRYPT_H_
#define _ENCRYPT_H_

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

char * md5(unsigned char * str, char * buff);

char * md5(unsigned char * str, char * buff)
{
	MD5_CTX ctx;
	unsigned char md5[16] = {0};
	char tmp[3]={'\0'};
	int i;

	MD5_Init(&ctx);

	MD5_Update(&ctx, str, strlen(str));

	MD5_Final(md5, &ctx);

	for(i = 0; i<16; i++)
	{
		sprintf(tmp, "%02x", md5[i]);
		strcat(buff, tmp);
	}
	//printf("%s\n",buff);

	return buff;
}

#endif

编译时需要加 -lssl -lcrypto 两个参数。


参考资料:

openssl的安装包名

Ubuntu下openssl的下载包名

使用openssl的md5库加密文件

使用openssl的md5库加密字符串


你可能感兴趣的:(c,MD5,加密,OpenSSL)