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

📄 messagedigest.h

📁 实现多种加解密算法
💻 H
字号:

//MessageDigest.h

#ifndef __MESSAGEDIGEST_H__
#define __MESSAGEDIGEST_H__

#include <string>

using namespace std;

//Typical DISCLAIMER:
//The code in this project is Copyright (C) 2003 by George Anescu. You have the right to
//use and distribute the code in any way you see fit as long as this paragraph is included
//with the distribution. No warranties or claims are made as to the validity of the
//information and code contained herein, so use it at your own risk.

//General Message Digest Interface
class IMessageDigest
{
public:
	//CONSTRUCTOR
	IMessageDigest() : m_bAddData(false) {}
	//DESTRUCTOR
	virtual ~IMessageDigest() {}
	//Update context to reflect the concatenation of another buffer of bytes
	virtual void AddData(char const* pcData, int iDataLength) = 0;
	//Final wrapup - pad to BLOCKSIZE-byte boundary with the bit pattern 
	//10000...(64-bit count of bits processed, MSB-first)
	virtual void FinalDigest(char* pcDigest) = 0;
	//Reset current operation in order to prepare for a new one
	virtual void Reset() = 0;
	//Digesting a Full File
	void DigestFile(string const& rostrFileIn, char* pcDigest);

protected:
	enum { BLOCKSIZE=64 };
	//Control Flag
	bool m_bAddData;
	//The core of the MessageDigest algorithm, this alters an existing MessageDigest hash to
	//reflect the addition of 64 bytes of new data
	virtual void Transform() = 0;

private:
	enum { DATA_LEN=384, BUFF_LEN=1024 };
};

#endif // __MESSAGEDIGEST_H__

⌨️ 快捷键说明

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