在Linux C变成中用到MD5加密会使用到openssl库,下面给出的是一个简单的小Demo:
#include <stdio.h> #include <openssl/md5.h> #include <string.h> #define MD5_LENGTH 16 #define MAX 40 int main(void) { MD5_CTX ctx; unsigned char data[MAX]; unsigned char md[MD5_LENGTH]; char buf[MAX] = ""; char tmp[3] = ""; fprintf(stderr, "Input string:"); fgets(data, MAX, stdin); data[strlen(data)-1] = ‘\0‘; MD5_Init(&ctx); MD5_Update(&ctx, data, strlen(data)); MD5_Final(md, &ctx); int i = 0; for (; i < MD5_LENGTH; ++i) { sprintf(tmp, "%02X", md[i]); strcat(buf, tmp); } fprintf(stderr, "%s\n", buf); return 0; }
这里如果在进行编译时出现 Error: openssl/MD5.h No Such File or Directory说明目前没有安装openssl的开发包,那需要安装一下该安装包:
使用yum install openssl-devel 即可完成安装。
如果在编译时出现undefined reference to `MD5_Init‘是因为在编译时需要链接openssl库的内容,在编译时加上-lssl就OK了。