小记:Linux下使用MD5算法

    由于项目中需要用到MD5算法,于是在网上找了好几个md5算法的源码文件,结果接口各不相同,很是头疼。翻翻Linux的/usr/include目录,发现/usr/include/openssl/下提供了md5.h,于是写了个小代码测试了一下:

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

void  PrintHex( char *  Buffer,  int  Size, FILE *  fp = stderr)
{
    assert(NULL 
!= Buffer);
    fprintf(fp, 
"===================================================== ");
    
char* p = NULL;
    
int i;
    
for (i=0, p = Buffer; i<Size; i++, p++)
    
{
        fprintf(fp, 
"%02x ", (unsigned char)*p);
        
if (i%16==15)
        
{
            fprintf(fp, 
" ");
        }

    }

    fprintf(fp, 
" ===================================================== ");
}


void  test()
{
    
char* str = "it's a test";
    
int len = strlen(str);
    
char buf[16= {0};
    
char* p = (char*)MD5((unsigned char*)str, len, (unsigned char*)buf);
    PrintHex(buf, 
sizeof(buf));
    PrintHex(p, 
16);
}


int  main()
{
    test();
    
return 1;
}


/*
g++ -o TestMD5.o -c TestMD5.cpp -g -Wall -Werror
g++ -o TestMD5 TestMD5.o /usr/lib/libssl.so
*/

    要注意:链接的时候链接/usr/lib/libssl.so
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值