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

📄 mdencrypt.h

📁 使用VC编写的一个MD5算法的程序其中内嵌使用了asm
💻 H
字号:
// MDEncrypt.h: interface for the CMDEncrypt class.
// 功能描述: 完成MD5算法的摘要过程
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MDENCRYPT_H__E12DF788_EB2C_423D_B618_4ADA3CC506FD__INCLUDED_)
#define AFX_MDENCRYPT_H__E12DF788_EB2C_423D_B618_4ADA3CC506FD__INCLUDED_

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

#define BUFFER_A  0
#define BUFFER_B  4
#define BUFFER_C  8
#define BUFFER_D  12
class CMDEncrypt  
{
public:
	CMDEncrypt(BYTE argData[], int argSize);
  CMDEncrypt();
	virtual ~CMDEncrypt();
  void GetInput(BYTE argData[], int argSize);
  LPBYTE GetResult();  //获得加密后的结果数据的指针
  int InitMDBuffer();  //初始化MD5缓冲器
  int HandleData();    //处理报文分组
  int Padding();   //完成报文填充
private:
  //扩充至k*512 + 448位
  void Expand(LPBYTE argData, int argNewSize);
  //扩充64位的长度位(8个BYTE)
  void ExpandLenSpace(LPBYTE argData);
  //自已实现的F, G, H, I 四个逻辑函数
  void FunctionF(LPBYTE argSrc1, LPBYTE argSrc2, LPBYTE argSrc3, LPBYTE argDst);
  void FunctionG(LPBYTE argSrc1, LPBYTE argSrc2, LPBYTE argSrc3, LPBYTE argDst);
  void FunctionH(LPBYTE argSrc1, LPBYTE argSrc2, LPBYTE argSrc3, LPBYTE argDst);
  void FunctionI(LPBYTE argSrc1, LPBYTE argSrc2, LPBYTE argSrc3, LPBYTE argDst);
  //自定义的算术操作
  //二进制加操作
  void Add(LPBYTE argSrc1, LPBYTE argSrc2, LPBYTE argDst, int argSize);
  //循环左移操作
  void ROL(LPBYTE argSrc, int argTimes, int argSize);
  //自定义实现的逻辑操作
  void And(LPBYTE argSrc1, LPBYTE argSrc2, LPBYTE argDst, int argSize);
  void Not(LPBYTE argSrc1, LPBYTE argDst, int argSize);
  void XOR(LPBYTE argSrc1, LPBYTE argSrc2, LPBYTE argDst, int argSize);
  void Or(LPBYTE argSrc1, LPBYTE argSrc2, LPBYTE argDst, int argSize);

public:
  LPBYTE  m_pData;  //存放原始输入的数据流
  BYTE    m_pBuffer[16];  //存放MD5的Buffer
  int m_nSize;      //存放数据的最新长度
  int m_nOrigSize;  //存放数据的原始长度
  const int m_nModCnt; 
};

#endif // !defined(AFX_MDENCRYPT_H__E12DF788_EB2C_423D_B618_4ADA3CC506FD__INCLUDED_)

⌨️ 快捷键说明

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