md5 加密(使用openssl庫C)

2021-09-26 03:40:56 字數 1371 閱讀 1428

參考

依賴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...