资源简介
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个文件信息
相关资源
- mfc 调用redis
- MFC视频播放器源码(支持avi/wma/mp3等格
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- MFC文档_视图_框架_模板结构体系深入
- 简单员工管理系统(适合初学MFC)
- MFC五子棋游戏
- MFC UDP编程
- MFC的异步网络通讯应用程序
- C++MFC模块讲解,黑发程序员课程整理
- 一个简单而强大的基于MFC的web server源
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- MFCaccess.rar
- VC++MFC课程设计的学生成绩管理系统
- MFC 日历控件 万年历 Calendar自绘
- CrystalDiskInfo-HDD/SSD硬盘信息,SMART信息
- MFC自定义界面HUI,高效简单,含详细
- 仿射密码-Affine cipher
- c++MFC车牌自动识别定位,只能定位和
- mfc+sql 酒店客房管理系统
- 基于图割的图像分割OpenCV+MFC实现
- MFC绘制Bezier曲线B样条曲线曲线拟合
- VC++实现RSA加密算法
- MFC坦克大战
- VC++ 中国象棋经典游戏源代码
- 课程设计: MFC 学生信息管理系统
- MFC对ACCESS数据库的增加、删除、查找
- vc.6.0 MFC 人事管理系统源码
评论
共有 条评论