📄 dlgaes.cpp
字号:
// DlgEncrypt.cpp : implementation file
//
#include "stdafx.h"
#include "Cryptology.h"
#include "DlgAES.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgAES dialog
CDlgAES::CDlgAES(CWnd* pParent /*=NULL*/)
: CDialog(CDlgAES::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgAES)
m_strDecrypt= _T("");
m_strCrypt = _T("");
m_strMsg = _T("");
m_iKeySize = 0;
m_strKey = _T("");
m_iRound = 0;
//}}AFX_DATA_INIT
}
void CDlgAES::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgAES)
DDX_Text(pDX, IDC_EDIT_DECRYPT, m_strDecrypt);
DDV_MaxChars(pDX, m_strDecrypt, 50000);
DDX_Text(pDX, IDC_EDIT_CRYPTOGRAPH, m_strCrypt);
DDV_MaxChars(pDX, m_strCrypt, 50000);
DDX_Text(pDX, IDC_EDIT_MESSAGE, m_strMsg);
DDV_MaxChars(pDX, m_strMsg, 50000);
DDX_Text(pDX, IDC_EDIT_KEY_SIZE, m_iKeySize);
DDX_Text(pDX, IDC_EDIT_KEY, m_strKey);
DDX_Text(pDX, IDC_EDIT_ROUND, m_iRound);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgAES, CDialog)
//{{AFX_MSG_MAP(CDlgAES)
ON_BN_CLICKED(IDC_BUTTON_ENCRYPT, OnButtonEncrypt)
ON_BN_CLICKED(IDC_BUTTON_DECRYPT, OnButtonDecrypt)
ON_EN_CHANGE(IDC_EDIT_MESSAGE, OnChangeEditMessage)
ON_BN_CLICKED(IDC_BUTTON_GENERATE_RANDOM_KEY, OnButtonGenerateRandomKey)
ON_WM_CREATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgAESEncrypt message handlers
BOOL CDlgAES::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
char ch;
FILE *fp = fopen("I have a dream.txt","r");
while( (ch=fgetc(fp))!=EOF )
{
if( ch=='\n' )
m_strMsg += '\r';
m_strMsg += ch;
}
fclose(fp);
m_iKeySize = m_AES.GetKeySize( )>>2;
m_iRound = m_AES.GetRound( );
m_AES.GetRoundKey( 0, m_strKey );
m_bEncrypt = false;
m_bDecrypt = true;
UpdateData(FALSE);
return TRUE;
}
void CDlgAES::OnChangeEditMessage()
{
// TODO: Add your control notification handler code here
m_bEncrypt = false;
}
void CDlgAES::OnButtonGenerateRandomKey()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_AES.GenerateRandomKey( m_iKeySize<<2, m_iRound );
m_AES.GetRoundKey( 0, m_strKey );
m_bEncrypt = false;
m_bDecrypt = true;
UpdateData(FALSE);
}
void CDlgAES::OnButtonEncrypt()
{
// TODO: Add your control notification handler code here
if( m_bEncrypt==true ) return;
UpdateData(TRUE);
m_AES.Encrypt( m_strMsg, m_strCrypt );
m_bEncrypt = true;
m_bDecrypt = false;
UpdateData(FALSE);
}
void CDlgAES::OnButtonDecrypt( )
{
// TODO: Add your control notification handler code here
if( m_bDecrypt==true ) return;
UpdateData(TRUE);
m_AES.Decrypt( m_strCrypt, m_strDecrypt );
m_bDecrypt = true;
UpdateData(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -