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

来源:互联网 发布:网上超市源码 编辑:程序博客网 时间:2024/05/09 21:50

一.安装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是跨平台的,而且提供了命令行工具。