linux下的md5程序,Linux下c基于openssl生成MD5的函数

Linux下openssl提供了一系列哈希及加密的函数,如果调用openssl提供的MD5函数生成任意字符串的MD5呢?下面提供了一段代码实现Linux下c字符串生成md5的函数。

具体代码:

#include "stdio.h"

#include

#include

#include

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]); // 转换为32位

}

out[32] = 0;

// printf("%sn", out);

strcpy(output,out);

free(out);

return 0;

}

另外提供两段代码供参考:

方法一:#include

#include

#include

int main( int argc, char **argv )

{

MD5_CTX ctx;

unsigned char *data="123";

unsigned char md[16];

char buf[33]={'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值