DES加密源代码Word下载.docx
- 文档编号:16783423
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:88
- 大小:27.60KB
DES加密源代码Word下载.docx
《DES加密源代码Word下载.docx》由会员分享,可在线阅读,更多相关《DES加密源代码Word下载.docx(88页珍藏版)》请在冰豆网上搜索。
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);
//DDX/DDVsupport
//}}AFX_VIRTUAL
//Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg:
:
CAboutDlg():
CDialog(CAboutDlg:
IDD)
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
voidCAboutDlg:
DoDataExchange(CDataExchange*pDX)
CDialog:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//Nomessagehandlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//CDESDlgdialog
CDESDlg:
CDESDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CDESDlg:
IDD,pParent)
//{{AFX_DATA_INIT(CDESDlg)
m_MINGWEN=_T("
"
);
m_KEY=_T("
m_MIWEN=_T("
m_YUANWEN=_T("
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
m_hIcon=AfxGetApp()->
LoadIcon(IDR_MAINFRAME);
voidCDESDlg:
//{{AFX_DATA_MAP(CDESDlg)
DDX_Text(pDX,IDC_EDIT1,m_MINGWEN);
DDX_Text(pDX,IDC_EDIT2,m_KEY);
DDX_Text(pDX,IDC_EDIT3,m_MIWEN);
DDX_Text(pDX,IDC_EDIT4,m_YUANWEN);
BEGIN_MESSAGE_MAP(CDESDlg,CDialog)
//{{AFX_MSG_MAP(CDESDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON1,On_Encrypt)
ON_BN_CLICKED(IDC_BUTTON2,On_Decrypt)
//CDESDlgmessagehandlers
BOOLCDESDlg:
OnInitDialog()
OnInitDialog();
//Add"
About..."
menuitemtosystemmenu.
//IDM_ABOUTBOXmustbeinthesystemcommandrange.
ASSERT((IDM_ABOUTBOX&
0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<
0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->
AppendMenu(MF_SEPARATOR);
AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//Settheiconforthisdialog.Theframeworkdoesthisautomatically
//whentheapplication'
smainwindowisnotadialog
SetIcon(m_hIcon,TRUE);
//Setbigicon
SetIcon(m_hIcon,FALSE);
//Setsmallicon
//TODO:
Addextrainitializationhere
returnTRUE;
//returnTRUEunlessyousetthefocustoacontrol
OnSysCommand(UINTnID,LPARAMlParam)
if((nID&
0xFFF0)==IDM_ABOUTBOX)
CAboutDlgdlgAbout;
dlgAbout.DoModal();
else
CDialog:
OnSysCommand(nID,lParam);
//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow
//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,
//thisisautomaticallydoneforyoubytheframework.
OnPaint()
if(IsIconic())
CPaintDCdc(this);
//devicecontextforpainting
SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);
//Centericoninclientrectangle
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&
rect);
intx=(rect.Width()-cxIcon+1)/2;
inty=(rect.Height()-cyIcon+1)/2;
//Drawtheicon
dc.DrawIcon(x,y,m_hIcon);
OnPaint();
//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags
//theminimizedwindow.
HCURSORCDESDlg:
OnQueryDragIcon()
return(HCURSOR)m_hIcon;
On_Encrypt()//************点击加密按钮,执行加密操作
UpdateData();
GetDlgItemText(IDC_EDIT1,m_MINGWEN);
//从明文框当中获得文本,并存于m_MINGWEN中
if(m_MINGWEN.GetLength()!
=8)//明文长度不合法时
SetDlgItemText(IDC_EDIT1,"
请输入8位字符"
UpdateData();
//一定别忘了刷新框中内容
//----------------------------——————————————————————————
//---------------------------------——————————————————————
GetDlgItemText(IDC_EDIT2,m_KEY);
//从密钥框当中获得文本,并存于m_KEY中
if(m_KEY.GetLength()!
=8)//密钥位数不够时,清空密钥
SetDlgItemText(IDC_EDIT2,"
//break;
else//密钥合法时开始加密
K1_Born();
//经过压缩换位,生成48位子密钥K1
K2_Born();
K3_Born();
K4_Born();
K5_Born();
K6_Born();
K7_Born();
K8_Born();
K9_Born();
K10_Born();
K11_Born();
K12_Born();
K13_Born();
K14_Born();
K15_Born();
K16_Born();
LR0_Born();
//产生经初始换位的L0,R0
//DES_DIEDAI(L0,R0,K1);
//密钥迭代过程
LR1_Born();
LR2_Born();
LR3_Born();
LR4_Born();
LR5_Born();
LR6_Born();
LR7_Born();
LR8_Born();
LR9_Born();
LR10_Born();
LR11_Born();
LR12_Born();
LR13_Born();
LR14_Born();
LR15_Born();
LR16_Born();
/**/
//开始逆初始换位
intR_replace[65],i,Result[65];
//64位原文结果存放于Result中
for(i=1;
i<
33;
i++)
{
R_replace[i]=R16[i];
R_replace[i+32]=L16[i];
}
65;
Result[i]=R_replace[IP_1[i-1]];
//*************************************
FILE*fp;
fp=fopen("
密文二进制表示.dat"
"
w"
//建立文件“密文二进制表示.dat”
fprintf(fp,"
%d\n"
Result[i]);
//fputc('
\n'
fp);
fclose(fp);
//下面准备把结果打入密文框~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
unsignedcharchar1,char2,char3,char4,char5,char6,char7,char8;
char1=Result[1]*128+Result[2]*64+Result[3]*32+Result[4]*16+Result[5]*8+Result[6]*4+Result[7]*2+Result[8];
char2=Result[9]*128+Result[10]*64+Result[11]*32+Result[12]*16+Result[13]*8+Result[14]*4+Result[15]*2+Result[16];
char3=Result[17]*128+Result[18]*64+Result[19]*32+Result[20]*16+Result[21]*8+Result[22]*4+Result[23]*2+Result[24];
char4=Result[25]*128+Result[26]*64+Result[27]*32+Result[28]*16+Result[29]*8+Result[30]*4+Result[31]*2+Result[32];
char5=Result[33]*128+Result[34]*64+Result[35]*32+Result[36]*16+Result[37]*8+Result[38]*4+Result[39]*2+Result[40];
char6=Result[41]*128+Result[42]*64+Result[43]*32+Result[44]*16+Result[45]*8+Result[46]*4+Result[47]*2+Result[48];
char7=Result[49]*128+Result[50]*64+Result[51]*32+Result[52]*16+Result[53]*8+Result[54]*4+Result[55]*2+Result[56];
char8=Result[57]*128+Result[58]*64+Result[59]*32+Result[60]*16+Result[61]*8+Result[62]*4+Result[63]*2+Result[64];
charResult_str[10]={char1,char2,char3,char4,char5,char6,char7,char8};
//将结果转化为的字符串存入此集合
//printf("
%s\n"
Result_str);
CStrings=Result_str;
SetDlgItemText(IDC_EDIT3,s);
}//输入都合法时执行
On_Decrypt()//************点击解密按钮,执行解密操作
{
/*UpdateData();
GetDlgItemText(IDC_EDIT3,m_MIWEN);
//从密文框当中获得文本,并存于m_MIWEN中
if(m_MIWEN.GetLength()!
=8)//密文长度不合法时
SetDlgItemText(IDC_EDIT3,"
UpdateData();
*/GetDlgItemText(IDC_EDIT2,m_KEY);
else//密钥合法时开始解密
{
LR0_Encrypt();
//输入的密文经初始换位的L0,R0
LR1_Decry();
LR2_Decry();
LR3_Decry();
LR4_Decry();
LR5_Decry();
LR6_Decry();
LR7_Decry();
LR8_Decry();
LR9_Decry();
LR10_Decry();
LR11_Decry();
LR12_Decry();
LR13_Decry();
LR14_Decry();
LR15_Decry();
LR16_Decry();
//&
&
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//开始逆初始换位
//下面准备把结果打入原文框
SetDlgItemText(IDC_EDIT4,s);
//}
MINGWEN_ERJINZHI()//*********明文二进制
FILE*fp;
charch;
staticinti,j,str[8];
fp=fopen("
明文二进制表示.dat"
//建立文件“明文二
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DES 加密 源代码