传送ASCII文件时,由于是明文,接收方无法知道内容是否被串改过,因此需要进行加密。MD5是其中一种比较好的信息,可以保证信息的一致性。至于MD5的解释或者说意义,大家查看网络资料就可以了。
涉及的函数分别为MD5_Init或者MD5Init,MD5_Update或者MD5Update,MD5_Final或者MD5Final,系统不一样,调用的库函数不一样。在suse linux上需要用到libcrypto.so包以及md.5,可以下载安装openssl包,然后配置下环境变量就可以了,下载地址:http://www.openssl.org/source/ ,在其他环境下有libmd5.so包也可以. 具体的实现代码为
char* MD5File (char *filename)
{
static char output[33]={""};
FILE *file;
MD5_CTX context;
int len;
unsigned char* buffer, digest[16];
int i;
char output1[32];
long li_FileLen=0;
struct stat FileStat;
char logMessage[256]={0};
if(stat(filename, &FileStat) < 0)
{
WriteLog(EROR,"Get MD5 File Stat fail");
return "";
}
li_FileLen = Fi