利用OpenSSL实现MD5加密函数(附带Ubuntu 12.04安装OpenSSL库的方法)

一.安装OpenSSL库

 

把下面的东西一股脑儿的装上,以免编译时出现链接错误

apt-get install openssl  libssl-dev libssl-doc libcurl4-openssl-dev

 

二.实现MD5加密函数,接受一个字符串,返回它的常规32位小写MD5值

/*
   md5_encrypt.h
*/
#ifndef _ENCRYPT_H_
#define _ENCRYPT_H_

char *md5_encrypt(const unsigned char*);

#endif


 

/*
  md5_encrypt.c
*/
#include <stdio.h>
#include <stdlib.h>
#include <openssl/md5.h>
#include <string.h>
#include <strings.h>
#include "md5_encrypt.h"

char *md5_encrypt(const unsigned char *str)
{
	unsigned char md[16];
	char tmp[3] = {'\0'};
	char *buf = (char*)malloc(33);
	bzero(buf,33);
	MD5(str,strlen(str),md);
	int i = 0;
	for(i=0;i<16;i++)
	{
		sprintf(tmp,"%2.2x",md[i]);
		strcat(buf,tmp);
	}
	return buf;
}


编译此函数: gcc md5_encrypt.c -c -lcrypto

上面实现的MD5加密函数char *md5_encrypt(const unsigned char *str)接受一个const unsigned char字符串,返回它的32位常规小写字符md5值。

注意返回的md5值保存在堆区,占33个字节,使用后记得用free释放。

 

还有一种用库中MD5_Init等函数实现的方法。以后附上。顺便研究一下OpenSSL库,没准以后用的着。

OpenSSL是跨平台的,而且提供了命令行工具。

你可能感兴趣的:(利用OpenSSL实现MD5加密函数(附带Ubuntu 12.04安装OpenSSL库的方法))