• 大小: 12.64MB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2023-06-18
  • 语言: C/C++
  • 标签: MFC  vc6.0  RSA  DES  MD5  

资源简介

MFC vc6.0 RSA DES MD5的加密解密算法 图形化开发

资源截图

代码片段和文件信息

// DESHOME.cpp: implementation of the CDESHOME class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “Encryption_decode.h“
#include “DESHOME.h“
#include “data.h“
#include 

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
/*对对所定义变量进行初始化*/
CDESHOME::CDESHOME()
{
memset(key 0 17*49);  //key[17][49] 存放16轮子密钥,下标从1开始
memset(t1 0 65);      //存放明文置换后的二进制
memset(L 0 17*33);
memset(R 0 17*33); 
memset(plain_binary 0 65);  //存放明文二进制,下标从0开始
memset(cipher_binary 0 65); //存放密钥二进制,下标从0开始
}
/*将待加密、解密的文件转换成二进制文件*/
void CDESHOME::PlainText(const CString String)
{
unsigned char ch;
int i j str[8];
for(i=0; i<8; i++)
{
  ch = String.GetAt(i);

  for(j=0; j<8; j++)
  {
         str[j] = ch%2;
 ch = ch/2;
  }

  for(j=7; j>=0; j--)
    plain_binary[i*8+7-j] = str[j];
}
}

/*将密钥转换成二进制形式,并保存在数组cipher_binary中*/
void CDESHOME::CipherText(const CString String)
{
unsigned char ch;
int i j str[8];
for(i=0; i<8; i++)
{
  ch = String.GetAt(i);
  for(j=0; j<8; j++)
  {
         str[j] = ch%2;
 ch = ch/2;
  }
  for(j=7; j>=0; j--)
  {
    cipher_binary[i*8+7-j] = str[j];
  }
}
}

/*子密钥的产生函数,并将生成的子密钥保存在数组key中*/
void CDESHOME::CreateCipher()
{
int i k0[57] CC[57];
int C[17][29] D[17][29];

for(i=1; i<=56;i++)//密钥二进制经过PC_1置换表选择56位
{
  k0[i] = cipher_binary[PC_1[i-1]-1];
}

//将选择好的56位二进制分成两组,每组28位,分别存放到C[0][] D[0][]中
for(i=1; i<=28; i++) 
{
C[0][i] = k0[i];
}
for(i=29; i<=56; i++)
{
D[0][i-28] = k0[i];
}

for (int temp = 0; temp<16; temp++)
{
//做左移位
if(shift[temp] == 1)//循环左移1位
{
for(i=1; i<28; i++)
{
C[temp+1][i]=C[temp][i+1];
D[temp+1][i]=D[temp][i+1];
}
C[temp+1][28]=C[temp][1];
D[temp+1][28]=D[temp][1];
}
else    //循环左移2位
{
for(i=1; i<27; i++)
{
C[temp+1][i]=C[temp][i+2];
D[temp+1][i]=D[temp][i+2];
}
C[temp+1][27]=C[temp][1];
D[temp+1][27]=D[temp][1];
C[temp+1][28]=C[temp][2];
D[temp+1][28]=D[temp][2];
}

for(i=1; i<=28; i++) //将两部分密钥合并到CC[56]数组中,经过PC_2置换表生成一轮子密钥
{
CC[i]=C[temp+1][i];
CC[i+28]=D[temp+1][i];
}
for(i=1; i<=48; i++)//压缩置换
{
key[temp+1][i] = CC[PC_2[i-1]];//生成子密钥存放到key[17][]中
}
}
}


/*保存子密钥*/
void CDESHOME::SaveToFile()
{
CFile file(savepath.SaveFilePath() CFile::modeNoTruncate|CFile::modeWrite);
static int i j;
CString strstring=““;
for(i=1; i<17; i++)
{
str == ““;
for(j=1; j<=48; j++)
{
str.Format(“%d“ key[i][j]);
string += str;
}
string += “\n“; 
}
file.Write(string  string.GetLength());
file.Close();
}
/*密钥操作主程序*/
void CDESHOME::Init(CString ciphertex

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3280  2014-11-26 23:13  Encryption_decode\data.h

     文件      32186  2014-11-26 23:16  Encryption_decode\Debug\DESHOME.obj

     文件          0  2014-11-27 00:20  Encryption_decode\Debug\DESHOME.sbr

     文件      32349  2014-11-27 18:30  Encryption_decode\Debug\DES_Dlg.obj

     文件          0  2014-11-27 18:30  Encryption_decode\Debug\DES_Dlg.sbr

     文件      14763  2014-11-26 23:16  Encryption_decode\Debug\DocOpera.obj

     文件          0  2014-11-27 00:20  Encryption_decode\Debug\DocOpera.sbr

     文件    3998720  2014-11-27 18:30  Encryption_decode\Debug\Encryption_decode.bsc

     文件   11550870  2014-11-27 18:30  Encryption_decode\Debug\Encryption_decode.exe

     文件     372628  2014-11-27 18:30  Encryption_decode\Debug\Encryption_decode.ilk

     文件      15471  2014-11-26 23:16  Encryption_decode\Debug\Encryption_decode.obj

     文件    8583416  2014-11-26 23:16  Encryption_decode\Debug\Encryption_decode.pch

     文件     680960  2014-11-27 18:30  Encryption_decode\Debug\Encryption_decode.pdb

     文件    9462292  2014-11-26 23:44  Encryption_decode\Debug\Encryption_decode.res

     文件          0  2014-11-27 00:20  Encryption_decode\Debug\Encryption_decode.sbr

     文件      41801  2014-11-26 23:16  Encryption_decode\Debug\Encryption_decodeDlg.obj

     文件          0  2014-11-27 00:20  Encryption_decode\Debug\Encryption_decodeDlg.sbr

     文件      14166  2014-11-26 23:16  Encryption_decode\Debug\MD5Crypt.obj

     文件          0  2014-11-27 00:20  Encryption_decode\Debug\MD5Crypt.sbr

     文件      77079  2014-11-26 23:16  Encryption_decode\Debug\MD5Dlg.obj

     文件          0  2014-11-27 00:20  Encryption_decode\Debug\MD5Dlg.sbr

     文件     222028  2012-06-06 14:05  Encryption_decode\Debug\msado15.tlh

     文件     167307  2012-06-06 14:05  Encryption_decode\Debug\msado15.tli

     文件       7066  2014-11-26 23:16  Encryption_decode\Debug\MyButton.obj

     文件          0  2014-11-27 00:20  Encryption_decode\Debug\MyButton.sbr

     文件      29292  2014-11-26 23:16  Encryption_decode\Debug\RSA_DecryptionDlg.obj

     文件          0  2014-11-27 00:20  Encryption_decode\Debug\RSA_DecryptionDlg.sbr

     文件      26093  2014-11-26 23:16  Encryption_decode\Debug\RSA_Dlg.obj

     文件          0  2014-11-27 00:20  Encryption_decode\Debug\RSA_Dlg.sbr

     文件      28072  2014-11-26 23:16  Encryption_decode\Debug\RSA_EncryptionDlg.obj

............此处省略82个文件信息

评论

共有 条评论