📄 md5ex.h
字号:
#ifndef _MD5EX_H
#define _MD5EX_H
#include "MD5.h"
#include "MemberFxn.h"
#pragma warning(disable : 4786)
#include <string>
using namespace std;
class MD5Ex : public MD5
{
public:
MD5Ex();
virtual ~MD5Ex();
private:
string m_strErr; // 错误描述
bool m_bTerminate; // 终止文件计算标志
// 将寄存器A, B, C, D的值转换为十六进制, 并以字符串方式返回
string ResultToHex(unsigned char digest[16], bool bUppercase = true);
// 调用用户指定的回调函数
void OnFileProcessing(int nProgress, MemberFxn addr);
public:
/** 获取文件的MD5值
参数
FileName - 文件名
bUppercase - 结果是否转换为大写
addr - 回调函数地址, 通过回调函数把计算进度回传给用户,
函数原型:void OnFileProcessing(int nProgress);
nProgress 为文件计算进度值(1 - 100)
注意
因为在对一个较大的文件计算MD5值的时间较长, 为避免界面发生假死
现象, 请将这个函数放在一个单独的线程中调用
*/
string MD5File (const char *FileName, bool bUppercase = true, MemberFxn addr = 0);
/** 获取字符串的MD5值
pData - 待计算MD5值的数据
DataLen - 数据长度(单位, 字节)
Uppercase - 结果是否转换为大写
*/
string MD5String (unsigned char *pData, unsigned long DataLen, bool bUppercase = true);
/** 此函数可提前结束MD5File函数的执行
*/
void StopCalculate();
// 获取错误描述
string GetError();
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -