參考
依賴openssl裡面的-lcrypto libcrypto.so庫
#include
unsigned char *md5(const unsigned char *d, unsigned long n, unsigned char *md);
int md5_init(md5_ctx *c);
int md5_update(md5_ctx *c, const void *data, unsigned long len);
int md5_final(unsigned char *md, md5_ctx *c);
方法一: 場景---資料較少
unsigned char *md5(const unsigned char *d, unsigned long n, unsigned char *md);
單獨使用這個函式生成unsigned char *md, md可以為陣列,長度16即可
方法二: 場景---資料較多,如檔案
int md5_init(md5_ctx *c);
int md5_update(md5_ctx *c, const void *data, unsigned long len);
int md5_final(unsigned char *md, md5_ctx *c);
md5_update傳輸資料,可以重複使用這個函式直到所有資料更新進去。最後使用md5_final即結果返回unsigned char *md裡
例項:方法二
bool cal_check_number(const char *filename,char *check_number)
; unsigned char md[16]=;
int readbytes=0;
md5_ctx ctx;
md5_init(&ctx);
file* file =fopen(filename, "r");
if(!file)
while(!feof(file) )
md5_final( md , &ctx);
snprintf(check_number, 33, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",\
md[0],md[1],md[2],md[3],md[4],md[5],md[6],md[7],\
md[8],md[9],md[10],md[11],md[12],md[13],md[14],md[15]);
printf("check_number cal---- [%s]",check_number);
return true;
}
使用openssl的md5庫
在linux機器上,有乙個命令可以計算出檔案的md5值,那就是md5sum,如果沒有的話,就需要安裝rpm包 coreutils。現在我們使用openssl的庫也可以方便的計算出檔案的md5值。主要用到的函式是 int md5 init md5 ctx c int md5 update md5 ct...
使用openssl的md5庫
在linux機器上,有乙個命令可以計算出檔案的md5值,那就是md5sum,如果沒有的話,就需要安裝rpm包 coreutils。現在我們使用openssl的庫也可以方便的計算出檔案的md5值。主要用到的函式是 int md5 init md5 ctx c int md5 update md5 ct...
linux c md5加密 使用 openssl
方法一 include include includeint main int argc,char argv char tmp 3 int i md5 init ctx md5 update ctx,data,strlen data md5 final md,ctx for i 0 i 16 i p...