MD5加密算法C语言(十六进制输入),验证可用,下载后不可用必指点你

本文提供了C语言实现的MD5加密算法,包括头文件和C文件的完整代码,包含MD5Init、MD5Update、MD5Final等关键函数。代码经过验证,可以将十六进制输入转化为MD5值。
摘要由CSDN通过智能技术生成

头文件


#ifndef MD5_H
#define MD5_H

typedef struct
{
unsigned int count[2];
unsigned int state[4];
unsigned char buffer[64];
}MD5_CTX;

#define F(x,y,z) ((x & y) | (~x & z))
#define G(x,y,z) ((x & z) | (y & ~z))
#define H(x,y,z) (xyz)
#define I(x,y,z) (y ^ (x | ~z))
#define ROTATE_LEFT(x,n) ((x << n) | (x >> (32-n)))
#define FF(a,b,c,d,x,s,ac)
{
a += F(b,c,d) + x + ac;
a = ROTATE_LEFT(a,s);
a += b;
}
#define GG(a,b,c,d,x,s,ac)
{
a += G(b,c,d) + x + ac;
a = ROTATE_LEFT(a,s);
a += b;
}
#define HH(a,b,c,d,x,s,ac)
{
a += H(b,c,d) + x + ac;
a = ROTATE_LEFT(a,s);
a += b;
}
#define II(a,b,c,d,x,s,ac)
{
a += I(b,c,d) + x + ac;
a = ROTATE_LEFT(a,s);
a += b;
}
extern void MD5_Caculate(char *source);
extern unsigned char decrypt[16];
#endif


C文件


#include “MD5.h”
unsigned char decrypt[16];

void MD5Init(MD5_CTX *context);
void MD5Update(MD5_CTX *context,unsigned char *input,unsigned int inputlen);
void MD5Final(MD5_CTX *context,unsigned char digest[16]);
void MD5Transform(unsigned int state[4],unsigned char block[64]);
void MD5Encode(unsigned char *output,unsigned int *input,unsigned int len);
void MD5Decode(unsigned int *output,unsigned char *input,unsigned int len);
unsigned char PADDING[]={0x80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

voi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值