⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 md5.h

📁 网络传输方面的范例程序,其中有MD5加密和解密的子程序,可以参考
💻 H
字号:
// MD5.h: interface for the CMD5 class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MD5_H__2BD24C41_1D83_11D3_AA2B_5254AB10A272__INCLUDED_)
#define AFX_MD5_H__2BD24C41_1D83_11D3_AA2B_5254AB10A272__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//POINTER defines a generic pointer type
typedef unsigned char *POINTER;

//UINT2 defines a two byte word
typedef unsigned short int UINT2;

//UINT4 defines a four byte word 
typedef unsigned long int UINT4;

typedef struct {
	UINT4 state[4];			//state (ABCD)
	UINT4 count[2];			//number of bits, modulo 2^64 (lsb first)
	unsigned char buffer [64];   //input buffer
}MD5_CTX;

class CMD5  
{
public:
	void Digest_file(CString fn,unsigned char digest[16]);
	void Digest_data(unsigned char *input,int inputlen,unsigned char digest[16]);
	void MD5Final (unsigned char[], MD5_CTX *);
	void MD5Update (MD5_CTX *context, unsigned char *input, ULONG inputLen);
	void MD5Init (MD5_CTX*);
	CMD5();
	virtual ~CMD5();

private:
	void MD5_memset (POINTER,unsigned char,unsigned int);
	void MD5_memcpy (POINTER,POINTER,unsigned int);
	void MD5Transform (ULONG state[4], unsigned char block[64]);
	unsigned char PADDING [64];

};

#endif // !defined(AFX_MD5_H__2BD24C41_1D83_11D3_AA2B_5254AB10A272__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -