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

📄 filecryptdlg.h

📁 一些加密算法的介绍,可对文件或字符串加密
💻 H
字号:

// FileCryptDlg.h : header file
//

#if !defined(AFX_FILECRYPTDLG_H__68379B09_5F3C_11D5_9E22_00E0296C853D__INCLUDED_)
#define AFX_FILECRYPTDLG_H__68379B09_5F3C_11D5_9E22_00E0296C853D__INCLUDED_

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

#include "EditSelect.h"
#include "EditHex.h"
#include "EditReadonly.h"
#include "EditColor.h"
#include "TransparentBitmap.h"
#include "Rijndael.h"
#include "TEA.h"
#include "BlowFish.h"
#include "XOR256Block.h"
#include "XOR256Stream.h"

#include <memory>

using namespace std;

/////////////////////////////////////////////////////////////////////////////
// CFileCryptDlg dialog

class CFileCryptDlg : public CDialog
{
// Construction
public:
	CFileCryptDlg(CWnd* pParent = NULL);	// standard constructor
// Dialog Data
	//{{AFX_DATA(CFileCryptDlg)
	enum { IDD = IDD_FILECRYPT_DIALOG };
		// NOTE: the ClassWizard will add data members here
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CFileCryptDlg)
	public:
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	enum {ENCRYPT=0, DECRYPT=1};
	enum {FILE=0, STRING=1};
	enum {AES=0, BLOWFISH=1, TEA=2, XOR256_BLOCK=3, XOR256_STREAM=4};
	HICON m_hIcon;
	void ActionString();
	void ActionFile();
	//
	void AESParams(CString& roStrKeyData, BOOL& rbHex, int& riKeyLength, int& riBlockSize, int& riMode, int& riPadding);
	void BlowFishParams(CString& roStrKeyData, BOOL& rbHex, int& riMode, int& riPadding);
	void TEAParams(CString& roStrKeyData, BOOL& rbHex, int& riMode, int& riPadding);
	void XOR256BlockParams(CString& roStrKeyData, BOOL& rbHex, int& riBlockSize, int& riORounds,
		int& riIRounds, int& riMode, int& riPadding);
	void XOR256StreamParams(CString& roStrKeyData, BOOL& rbHex, int& riIRounds);
	//Callback Procedure
	static int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lp, LPARAM pData);
	BOOL BrowseDialog(CString& roStrPath);
	void ShowFileGroup(BOOL bShow);
	void ShowStringGroup(BOOL bShow);
	void MoveFileGroup();
	void MoveStringGroup();
	IMethod* GetMethod(int iMethod);
	// Generated message map functions
	//{{AFX_MSG(CFileCryptDlg)
	virtual BOOL OnInitDialog();
	virtual void OnOK();
	virtual void OnCancel();
	afx_msg void OnClose();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnKickIdle();
	afx_msg void OnUpdateBtnDir1(CCmdUI* pCmdUI);
	afx_msg void OnUpdateBtnDir3(CCmdUI* pCmdUI);
	afx_msg void OnUpdateBtnExtInput(CCmdUI* pCmdUI);
	afx_msg void OnUpdateBtnExtOutput(CCmdUI* pCmdUI);
	afx_msg void OnUpdateBtnAction(CCmdUI* pCmdUI);
	afx_msg void OnUpdateComboKeysize(CCmdUI* pCmdUI);
	afx_msg void OnUpdateComboBlocksize(CCmdUI* pCmdUI);
	afx_msg void OnUpdateEditBlockSize(CCmdUI* pCmdUI);
	afx_msg void OnUpdateComboOpMode(CCmdUI* pCmdUI);
	afx_msg void OnUpdateComboPadding(CCmdUI* pCmdUI);
	afx_msg void OnUpdateEditExtRounds(CCmdUI* pCmdUI);
	afx_msg void OnUpdateEditIntRounds(CCmdUI* pCmdUI);
	afx_msg void OnRadencrypt();
	afx_msg void OnRaddecrypt();
	afx_msg void OnBtnaction();
	afx_msg void OnBtnfile1();
	afx_msg void OnBtnfile3();
	afx_msg void OnSelchangeCombomethods();
	afx_msg void OnRadfile();
	afx_msg void OnRadstring();
	afx_msg void OnBtndir1();
	afx_msg void OnBtndir3();
	afx_msg void OnExit();
	afx_msg void OnHelp();
	afx_msg void OnChangeEdthex();
	afx_msg void OnRadkey();
	afx_msg void OnRadplain();
	afx_msg void OnRadkeyhex();
	afx_msg void OnRadplainhex();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

private:
	COLORREF m_oKeyFrg, m_oKeyBg, m_oKeyBg1;
	COLORREF m_oPlainFrg, m_oPlainBg, m_oPlainBg1;
	COLORREF m_oEncFrg, m_oEncBg, m_oEncBg1;
	//
	CComboBox m_oComboMethods; //IDC_COMBOMETHODS
	CComboBox m_oComboKeySize; //IDC_COMBOKEYSIZE
	CComboBox m_oComboBlockSize; //IDC_COMBOBLOCKSIZE
	CEditReadonly m_oEditBlockSize; //IDC_EDITBLOCKSIZE
	//
	CEditSelect m_oEditKeyData; //IDC_EDITKEYDATA
	CEditHex m_oEditKeyDataHex; //IDC_EDITKEYDATAHEX
	//
	CComboBox m_oComboOpMode; //IDC_COMBOOPMODE
	CComboBox m_oComboPadding; //IDC_COMBOPADDING
	CEditReadonly m_oEditExtRounds; //IDC_EDITEXTROUNDS
	CEditReadonly m_oEditIntRounds; //IDC_EDITINTROUNDS
	CButton m_oBtnAction; //IDC_BTNACTION
	//
	CEditSelect m_oEdtStr; //IDC_EDTSTR
	CEditHex m_oEdtStrHex; //IDC_EDTSTRHEX
	//
	CEditReadonly m_oEdtEnc; //IDC_EDTENC
	CEditHex m_oEdtEncHex; //IDC_EDTENCHEX
	//
	CEditReadonly m_oEdtDir1; //IDC_EDTDIR1
	CButton m_oBtnDir1; //IDC_BTNDIR1
	CEditSelect m_oEdtExt1; //IDC_EDTEXT1
	CEditSelect m_oEdtFile1; //IDC_EDTFILE1
	CButton m_oBtnFile1; //IDC_BTNFILE1
	//
	CEditReadonly m_oEdtDir3; //IDC_EDTDIR3
	CButton m_oBtnDir3; //IDC_BTNDIR3
	CEditSelect m_oEdtExt3; //IDC_EDTEXT3
	CEditSelect m_oEdtFile3; //IDC_EDTFILE3
	CButton m_oBtnFile3; //IDC_BTNFILE3
	//
	//ToolTip control
	CToolTipCtrl m_oToolTipCtrl;
	//Aplication's Menu
	CMenu m_oMenu;
	int m_iAction;
	CTransparentBitmap m_oTransparentBitmap1, m_oTransparentBitmap2;
	CBitmap m_oBMP1, m_oBMP2;
	//Encryption/Decryption Method
	int m_iMethod;
	int m_iMode;
	static CString sm_oStrDir;
	auto_ptr<CRijndael> m_apAES;
	auto_ptr<CBlowFish> m_apBlowFish;
	auto_ptr<CTEA> m_apTEA;
	auto_ptr<CXOR256Block> m_apXOR256Block;
	auto_ptr<CXOR256Stream> m_apXOR256Stream;
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_FILECRYPTDLG_H__68379B09_5F3C_11D5_9E22_00E0296C853D__INCLUDED_)

⌨️ 快捷键说明

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