欢迎光临!
加入收藏设为首页请您留言

计算机毕业设计,计算机课程设计

计算机毕业设计网支持淘宝或支付宝支付
包修改,包调试
毕业课程设计搜索:
您当前位置:网站首页 >> vc,vb类 >> DES算法加密解密实现及应用

计算机毕业设计源码展示-DES算法加密解密实现及应用

2014-07-09 02:47:04 来源:大神设计毕业设计源码论文网 浏览:6
内容提要:
如果你满意这个设计可以分享到:

国内香港美国免备案空间
以下是本题目部分介绍,若需要完整版或不符合您的要求,请联系客服QQ:287249569 message

本文研究的是DES算法实现及应用。选择该课题的意义在于:为了防止信息不被非法访问或窃取,实现达到该目的功能软件。DES算法是对称的加密算法,具有速度快,执行效率高等优点,它是由IBM公司研制的一种加密算法.本设计实现了该算法并且集成了加密演示,文本文件加密两个功能模块.加密演示模块提供了对DES算法的加解密演示功能。文本文件加密模块提供了对文本文件加密并保存密文的功能。整个设计采用C++语言实现,DES类提供了两个接口,一个加密接口和一个解密接口,对其进行了封装,以便在其他场合可以提供加解密功能。整个应用程序设计的各个功能模块的执行依靠事件驱动,根据不同的事件原因及事件类型执行不同的功能模块。本文是针对DES算法实现及其应用所做的工作,主要描述DES算法实现原理和方法,应用场合示例演示,实现方式和方法以及在此过程中运用到的计算机知识。并通过所编写的程序实现了本文的描述。


加密演示模块
 该模块的主要功能是提供一个加密演示的效果,在输入框中输入明文点确定按钮将显示密文,确定按钮中能智能的检测用户输入的消息是明文还是密文,如果是明文则加密,如果是密文则解谜,体现DES算法的可逆性.对于刚刚生成的密文,我们把它复制下来粘贴到输入框点解密可恢复出明文.其效果图如图3-2所示

\
该功能模块实现的代码如下:
void DesStringEncrypt::OnBTNRun()
{
 // TODO: Add your control notification handler code here
 bool flage;
 DWORD   time=GetTickCount();
 
    UpdateData(true);
    int strLen=m_strInput.GetLength();
 if (strLen>0)
 {
  strLen = ((strLen+7)>>3)<<3;
  char *buffer=new char[strLen];
     memset(buffer,0,strLen);
  if(m_strDesKey1 == m_strDesKey2&&m_strDesKey2.GetLength()!=0)
  {
   if( m_bRunType==ENCRYPT )  
          flage=m_des.Encrypt(buffer,m_strInput.GetBuffer(0),strLen,m_strDesKey1.GetBuffer(0));
   else
    flage=m_des.Decrypt(buffer,m_strInput.GetBuffer(0),strLen,m_strDesKey1.GetBuffer(0));
   
   if( flage )
   {
    CString strMessage;
    strMessage.Format("%s成功! 用时%u秒。",(m_bRunType==ENCRYPT)?"加密":"解密",(GetTickCount()-

time)/1000);
    MessageBox(strMessage,"提示",MB_ICONINFORMATION);  
   }
  }
  else if (m_strDesKey1.GetLength()==0&&m_strDesKey2.GetLength()==0)
  {
   //使用默认密码加密解密
   CString keyString=KEYSTRING;

   if( m_bRunType==ENCRYPT )  
    flage=m_des.Encrypt(buffer,m_strInput.GetBuffer(0),strLen,keyString.GetBuffer(0));
   else
    flage=m_des.Decrypt(buffer,m_strInput.GetBuffer(0),strLen,keyString.GetBuffer(0));
   
   if( flage )
   {
    CString strMessage;
    strMessage.Format("%s成功! 用时%u秒。",(m_bRunType==ENCRYPT)?"加密":"解密",(GetTickCount()-

time)/1000);
    MessageBox(strMessage,"提示",MB_ICONINFORMATION);  
   }
  }
  else if (m_strDesKey1.GetLength()>0)
  {
   CWindow::ShowMessage("错误:DES密钥不一致! ");
  }
  m_strOutPut.Format("%s",buffer);
  delete []buffer;
 }
 UpdateData(false);

}

以上是本题目部分介绍,若需要完整版或不符合您的要求,请联系客服QQ:287249569 message

发表评论发表计算机毕业课程设计评论
网名:
评论:
验证:
共有0人对本计算机毕业论文发表评论查看所有评论(网友评论仅供表达个人看法,并不表明本站同意其观点或证实其描述)
版权所有:大神设计-计算机毕业课程设计-网 CopyRight  © 2007-2015 All Rights Reserved赣ICP备17010611号   360网站安全检测平台
用心做计算机毕业设计论文