中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Linux下C基于openssl生成MD5的函數(shù)

2018-07-20    來源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用

Linux下openssl提供了一系列哈希及加密的函數(shù),如果調(diào)用openssl提供的MD5函數(shù)生成任意字符串的MD5呢?下面提供了一段代碼實(shí)現(xiàn)Linux下c字符串生成md5的函數(shù)。

具體代碼:

 #include "stdio.h"
#include <string.h>
#include <stdlib.h>
#include <openssl/md5.h>
int  get_md5( char  *input, char  *output)
{
     char  password[1024*1024*5]={0};
     MD5_CTX x;
     int  i = 0, len;
     char  *out = NULL;
     unsigned  char  d[16];
     unsigned  char  tmp[128] = { 0 }; 
     strcpy (password,input);
     MD5_Init(&x);
     MD5_Update(&x, ( char  *)password,  strlen (password));
     MD5_Final(d, &x);
     out = ( char  *) malloc (35);
     memset (out, 0x00, 35);
     strcpy (out,  "$1$" );
    // printf("MD5(\"%s\") = ", password);
     for  (i = 0; i < 16; i++)
     {
         sprintf (out + (i*2),  "%02X" , d[i]);  // 轉(zhuǎn)換為32位
     }
     out[32] = 0;
    // printf("%s\n", out);
     strcpy (output,out);
     free (out);
     return  0;
} 

另外提供兩段代碼供參考:

方法一:

 #include<stdio.h>
#include<openssl/md5.h>
#include<string.h>
int  main(  int  argc,  char  **argv )
{
MD5_CTX ctx;
unsigned  char  *data= "123" ;
unsigned  char  md[16];
char  buf[33]={ '\0' };
char  tmp[3]={ '\0' };
int  i;
MD5_Init(&ctx);
MD5_Update(&ctx,data, strlen (data));
MD5_Final(md,&ctx);
for ( i=0; i<16; i++ ){
sprintf (tmp, "%02X" ,md[i]);
strcat (buf,tmp);
}
printf ( "%s\n" ,buf);
return  0;
} 

輸出:

202CB962AC59075B964B07152D234B70


方法二:

 #include<stdio.h>
#include<openssl/md5.h>
#include<string.h>
int  main(  int  argc,  char  **argv )
{
unsigned  char  *data =  "123" ;
unsigned  char  md[16];
int  i;
char  tmp[3]={ '\0' },buf[33]={ '\0' };
MD5(data, strlen (data),md);
for  (i = 0; i < 16; i++){
sprintf (tmp, "%2.2x" ,md[i]);
strcat (buf,tmp);
}
printf ( "%s\n" ,buf);
return  0;
} 

輸出:

202cb962ac59075b964b07152d234b70

標(biāo)簽: linux ssl 代碼

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:Android中隱藏ActionBar的方法

下一篇: T-SQL 時(shí)間操作(dateadd ,datediff ,datepart ,datename )