You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.0 KiB
C++

#pragma once
//////////////////////////////////////////////////////////////////////////////
//文件 FileEncrypt.h
//主要功能:
// 将文件进行加密操作
//
//程序编写: 2005-12-07
/////////////////////////////////////////////////////////////////////////////
#define ENCRYPT_EDITABLE 0x0001 //可编辑
#define ENCRYPT_READONLY 0x0002 //只读
class AFX_EXT_CLASS CFileEncrypt
{
public:
CFileEncrypt(void);
virtual ~CFileEncrypt(void);
virtual void Serialize(CArchive& ar, const short &ver);
virtual int Read(CFile& fr, const short &ver);
virtual void Write(CFile& fw, const short &ver);
virtual void operator=(CFileEncrypt& fe);
BOOL IsReadOnly(void);
BOOL IsEditable(void);
void GetMd5(BYTE* pstr, CString strPassword);
int VerifyPassword(LPCTSTR szPassword);
void SetPassword(LPCTSTR szEditPassword, LPCTSTR szReadOnlyPassword=NULL);
BOOL IsEmpty(void);
void Empty(void);
protected:
void EnableEditable(BOOL bEnable);
void EnableReadOnly(BOOL bEnable);
BYTE m_cPasswordEdit[20];
BYTE m_cPasswordReadOnly[20];
DWORD m_nFlags; //加密扩展
};