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

📄 dlgaesencrypt.cpp

📁 详细的AESRSASHA1实现原理
💻 CPP
字号:
// DlgEncrypt.cpp : implementation file
//

#include "stdafx.h"
#include "Cryptology.h"
#include "DlgAESEncrypt.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgAESEncrypt dialog

CDlgAESEncrypt::CDlgAESEncrypt(CWnd* pParent /*=NULL*/)
: CDialog(CDlgAESEncrypt::IDD, pParent)
{
    //{{AFX_DATA_INIT(CDlgAESEncrypt)
    m_strDecrypt= _T("");
    m_strCrypt  = _T("");	
    m_strMsg	= _T("");
	m_iKeySize = 0;
	m_strKey = _T("");
	m_iRound = 0;
	//}}AFX_DATA_INIT
    m_bEncrypt = false;
    m_bDecrypt = true;
}


void CDlgAESEncrypt::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CDlgAESEncrypt)
    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(CDlgAESEncrypt, CDialog)
//{{AFX_MSG_MAP(CDlgAESEncrypt)
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_BN_CLICKED(IDC_BUTTON_SET_ROUND, OnButtonSetRound)
ON_WM_CREATE()
	ON_BN_CLICKED(IDC_BUTTON_SET_KEY_SIZE, OnButtonSetKeySize)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgAESEncrypt message handlers

BOOL CDlgAESEncrypt::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);
    UpdateData(FALSE);
    
    return TRUE;  
}

void CDlgAESEncrypt::OnChangeEditMessage() 
{	
    // TODO: Add your control notification handler code here
    m_bEncrypt = false;
}

void CDlgAESEncrypt::OnButtonGenerateRandomKey() 
{
	// TODO: Add your control notification handler code here
    m_AES.GenerateRandomKey( );
    m_AES.GetRoundKey( 0, m_strKey );

    m_bEncrypt = false;
    m_bDecrypt = true;

    UpdateData(FALSE);
}

void CDlgAESEncrypt::OnButtonSetRound() 
{
	// TODO: Add your control notification handler code here
    UpdateData(TRUE);
	m_AES.SetRound( m_iRound );
}

void CDlgAESEncrypt::OnButtonSetKeySize() 
{
	// TODO: Add your control notification handler code here
    UpdateData(TRUE);
	m_AES.SetKeySize( m_iKeySize << 2 );
}

void CDlgAESEncrypt::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 CDlgAESEncrypt::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 + -