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

📄 passphrase.cpp

📁 DES算法实现
💻 CPP
字号:
// PassPhrase.cpp : implementation file
//

#include "stdafx.h"
#include "Logs.h"
#include "PassPhrase.h"

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

/////////////////////////////////////////////////////////////////////////////
// CPassPhrase dialog


CPassPhrase::CPassPhrase(CWnd* pParent /*=NULL*/)
	: CDialog(CPassPhrase::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPassPhrase)
	m_csPassPhrase = _T("");
	m_csPassword = _T("");
	//}}AFX_DATA_INIT
}


void CPassPhrase::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPassPhrase)
	DDX_Control(pDX, EDT_PASSPHRASE, m_EditControl);
	DDX_Text(pDX, EDT_PASSPHRASE, m_csPassPhrase);
	DDX_Text(pDX, EDT_PASSWORD, m_csPassword);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPassPhrase, CDialog)
	//{{AFX_MSG_MAP(CPassPhrase)
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPassPhrase message handlers

void CPassPhrase::OnOK() 
{

	CLogsApp* pcLogger = (CLogsApp*) AfxGetApp();

	UpdateData();
	if (m_csPassPhrase.IsEmpty()) {
		int nRet = MessageBox ("Please enter a PassPhrase","Error: PassPhrase",MB_OKCANCEL | MB_ICONEXCLAMATION);
		if (nRet == IDOK) {
			m_EditControl.SetFocus() ;
			GetDlgItem(EDT_PASSPHRASE)->SetWindowText("");
		}
		else {
			EndDialog (0);
		}
	}	
	else {

		CString csPassPhrase = m_csPassPhrase;

		CRegistry reg;
		reg.SetRootKey(HKEY_LOCAL_MACHINE);
		reg.SetKey("SOFTWARE\\LogDemo\\Settings", TRUE);
		CString csUserPPhrase = reg.ReadString("UserPassPhrase", _T("Error"));

		if (csUserPPhrase == "Error") {
			csUserPPhrase = pcLogger->clLogs.EncryptString(csPassPhrase, pcLogger->clLogs.m_csAppsPPhrase);
			reg.WriteString(_T("UserPassPhrase"), csUserPPhrase);
		}
		else {
			csPassPhrase = pcLogger->clLogs.DecryptString(csUserPPhrase, pcLogger->clLogs.m_csAppsPPhrase);
		}

		if (csPassPhrase == m_csPassPhrase) {

			pcLogger->clLogs.m_bGoodPassPhrase = TRUE;

			CString csUserAdminPwd = m_csPassword;
			CString csAdminPwd = reg.ReadString("AdminPassword", _T("Error"));
			if (csAdminPwd == "Error") {
				csAdminPwd = pcLogger->clLogs.EncryptString(m_csPassword, pcLogger->clLogs.m_csAppsPPhrase);
				reg.WriteString(_T("AdminPassword"), csAdminPwd);
				csAdminPwd = csUserAdminPwd;
			}
			else {
				csUserAdminPwd = pcLogger->clLogs.DecryptString(csAdminPwd, pcLogger->clLogs.m_csAppsPPhrase);
				csAdminPwd = csUserAdminPwd;
			}

			if (csAdminPwd == m_csPassword) {
				pcLogger->clLogs.m_bGoodAdmPwd = TRUE;
				pcLogger->clLogs.WriteLog(_T("Logged in as an Administrator..."), 8);
			}
			else {
				pcLogger->clLogs.m_bGoodAdmPwd = FALSE;
				pcLogger->clLogs.WriteLog(_T("Logged in as an Normal (Read-Only) User..."), 8);
			}

			EndDialog (1);
		}
		else {
			pcLogger->clLogs.m_bGoodPassPhrase = FALSE;
		
			pcLogger->clLogs.WriteLog(_T("The Pass Phrase was entered incorrectly"), 1);

			int nRet = MessageBox ("Please Re-enter the correct PassPhrase","Error: PassPhrase",MB_OKCANCEL | MB_ICONEXCLAMATION);
			if (nRet == IDOK) {
				m_EditControl.SetFocus() ;
				GetDlgItem(EDT_PASSPHRASE)->SetWindowText("");
			}
			else {
				EndDialog (0);
			}
		}
	}
}

void CPassPhrase::OnCancel() 
{
	EndDialog (0);
}



void CPassPhrase::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	m_EditControl.SetFocus() ;
}

⌨️ 快捷键说明

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