QQ登录

只需一步,快速开始

上位机MFC,Rijndael算法加密解密源代码

[ 复制链接 ]

2019-09-04_112805.jpg
源代码下载地址:
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:上位机MFCRijndael算法加密解密源代码.rar 
文件大小:42.29 KB  售价:1金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


关键代码如下

  1. void CRijndView::OnUncryption()
  2. {
  3.         // TODO: Add your control notification handler code here
  4.                 k_bit=(unsigned char*)m_miyao.GetBuffer(8);
  5.         m_miyao.ReleaseBuffer();                                                //密钥的获取
  6.         unsigned char *m_bit;
  7.         m_bit=new unsigned char [length];
  8.         BeginWaitCursor();
  9.         {
  10.         rij.set_key(k_bit,256);
  11.                 for(int j=0;j<N;j++)
  12.                 {
  13.                         rij.decrypt(var,m_bit);
  14.                         m_bit+=16;
  15.                         var+=16;
  16.                 }
  17.                 m_bit=m_bit-16*N;
  18.                 var=var-16*N;
  19.         }
  20.         EndWaitCursor();

  21.                 char szFilter[] = "all Files(*.*)|*.*||";
  22.                 CFileDialog FileDlg( FALSE, NULL, NULL, OFN_HIDEREADONLY, szFilter );
  23.                 FileDlg.m_ofn.lpstrTitle="解密文件存为";
  24.                 if( FileDlg.DoModal() == IDOK ){
  25.                         BeginWaitCursor();
  26.                         CString PathName = FileDlg.GetPathName();
  27.                         PathName=PathName+name;

  28.                         CFile f;
  29.                     f.Open(PathName,
  30.                         CFile::modeCreate|CFile::modeWrite);
  31.                         f.Write(m_bit,length);
  32.                         f.Close();
  33.                         CString string;
  34.                         string="notepad"+PathName;
  35.                         WinExec(string,SW_SHOW);

  36.                         m_jiami="解密结束!";
  37.                         MessageBox(m_jiami);
  38.                         EndWaitCursor();
  39.                 }

  40.                         delete m_bit;
  41.                         UpdateData(false);
  42.                         Invalidate(true);
  43.         
  44. }

  45. void CRijndView::OnEncryptionSelect()
  46. {
  47.         // TODO: Add your control notification handler code here
  48.         char szFilter[] = "all Files(*.*)|*.*||";
  49.         CFileDialog FileDlg( TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter );

  50.         if( FileDlg.DoModal() == IDOK )
  51.         {
  52.                 BeginWaitCursor();
  53.                 CString PathName = FileDlg.GetPathName();
  54.                 CString filename=FileDlg.GetFileName();
  55.                 CString first=FileDlg.GetFileTitle();
  56.                 name=filename.Right(filename.GetLength()-first.GetLength());
  57.                 {
  58.                         CFile f2;
  59.                         if(f2.Open(PathName,CFile::modeRead|CFile::typeBinary  )==FALSE)
  60.                         return;
  61.                         length=f2.GetLength();
  62.                         
  63.                         N=length/16;
  64.                         if(length%16==0)
  65.                         {
  66.                                 N=N;
  67.                         }
  68.                         else
  69.                         {
  70.                                 length=length+16-length%16;
  71.                                 N=N+1;
  72.                         }

  73.                         var=new unsigned char [length];

  74.                         f2.Read(var,f2.GetLength());

  75.                         if(f2.GetLength()%16!=0)
  76.                         {
  77.                                 for(i=0;i<(int)(16-f2.GetLength()%16);i++)
  78.                                 {
  79.                                         var[length-16+f2.GetLength()%16+i]=' ';
  80.                                 }
  81.                         }
  82.                         
  83.                         f2.Close();
  84.                         Invalidate(true);

  85.                 }
  86.                 EndWaitCursor();
  87.         }
  88. }

  89. void CRijndView::OnUncryptionSelect()
  90. {
  91.         // TODO: Add your control notification handler code here
  92.                 char szFilter[] = "all Files(*.*)|*.*||";
  93.         CFileDialog FileDlg( TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter );

  94.         if( FileDlg.DoModal() == IDOK )
  95.         {
  96.                 BeginWaitCursor();
  97.                 CString PathName = FileDlg.GetPathName();
  98.                 CString filename=FileDlg.GetFileName();
  99.                 CString first=FileDlg.GetFileTitle();
  100.                 name=filename.Right(filename.GetLength()-first.GetLength());

  101.                 {
  102.                         CFile f2;
  103.                         if(f2.Open(PathName,CFile::modeRead|CFile::typeBinary  )==FALSE)
  104.                         return;
  105.                         length=f2.GetLength();

  106.                         var=new unsigned char [length];
  107.                         N=length/16;
  108.                         f2.Read(var,f2.GetLength());                        
  109.                         f2.Close();               
  110.                         Invalidate(true);
  111.                 }
  112.                 EndWaitCursor();
  113.         }
  114. }
复制代码



回复

使用道具 举报

快速回复 返回列表 客服中心 搜索