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

📄 des.cpp

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

#include "stdafx.h"
#include "sec.h"
#include "DES.h"
#include "des_function.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// DES dialog


DES::DES(CWnd* pParent /*=NULL*/)
	: CDialog(DES::IDD, pParent)
{
	//{{AFX_DATA_INIT(DES)
	m_des_key = _T("");
	m_des_miwen = _T("");
	m_des_mingwen = _T("");
	m_des_mi = _T("");
	//}}AFX_DATA_INIT
}


void DES::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DES)
	DDX_Text(pDX, IDC_EDIT2, m_des_key);
	DDX_Text(pDX, IDC_EDIT3, m_des_miwen);
	DDX_Text(pDX, IDC_EDIT1, m_des_mingwen);
	DDX_Text(pDX, IDC_EDIT4, m_des_mi);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(DES, CDialog)
	//{{AFX_MSG_MAP(DES)
	ON_COMMAND(ID_Group_Enc, OnGroupEnc)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DES message handlers

void DES::OnOK() 
{
	// TODO: Add extra validation here
	char str1,str2;
	__int64 tmp,tmp2;
	char * str3;
	char * str4;
	int i,j;
	UpdateData(1);
	tmp=0;
	for(i=0;i<m_des_mingwen.GetLength();i++)
		{
			tmp<<=8;
				str1=m_des_mingwen.GetAt(i);
				tmp|=(__int8)str1;
		}
	
	j=0;
    for(i=0;i<m_des_key.GetLength();i++)
		{
			tmp2<<=8;
			str1=m_des_key.GetAt(i);
			tmp2|=(__int8)str1;
		}
	DESSubKeys(tmp2, subKey, DES_MODE_ENCRYPT);
	encrypt = DES64(subKey, tmp);
	str3=(char *)&encrypt;
	for(i=0;i<8;i++)
	m_des_miwen+=str3[i];
	DESSubKeys(tmp2, subKey, DES_MODE_DECRYPT);
	decrypt = DES64(subKey, encrypt);
	str4=(char *)&decrypt;
	for(i=0;str4[i]!=0;i++);i--;
	for(;i>=0;i--)
	m_des_mi+=*(str4+i);


	UpdateData(0);
	//scanf("%s",&source1);
}

void DES::OnGroupEnc() 
{
	// TODO: Add your command handler code here
	DES dlg1;
	dlg1.DoModal();
}

void DES::OnCancel() 
{
	// TODO: Add extra cleanup here
	
	CDialog::OnCancel();
}

void DES::OnButton2() 
{
	// TODO: Add your control notification handler code here
	UpdateData(1);
	m_des_key.Empty();
	m_des_mi.Empty();
	m_des_mingwen.Empty();
	m_des_miwen.Empty();
	UpdateData(0);
}

⌨️ 快捷键说明

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