📄 datadeal.cpp
字号:
#include "StdAfx.h"
#include ".\datadeal.h"
#include "DES.h"
#include <fstream>
using namespace std;
CDataDeal::CDataDeal(void)
{
}
CDataDeal::~CDataDeal(void)
{
}
void CDataDeal::EncryptFile(char * file_name, unsigned char * key, bool isEncode)
{
CDES des;
unsigned char _key[8];
memcpy(_key, key, 8);//得到密钥.
unsigned char msg[8];
char filename[128];
if(isEncode == ENCODE)
{
strcpy(filename, "ENCODE_");
}
else
{
strcpy(filename, "DECODE_");
}
strcat(filename, file_name);
filename[127] = 0;//完成对文件名的定义
ofstream outfile;
ifstream infile;
outfile.open(filename, ios::out);
infile.open(file_name, ios::in);
bool isEOF = false;
while(infile)
{
memset(msg, 0, 8);
for(int i = 0; i < 8; ++i)
{
if(infile)
{
msg[i] = (unsigned char)infile.get();
}
else
{
--i;
if(i > 0)
{
des.DES_Compute(msg, _key, isEncode);
for(int i = 0; i < 8; ++i)
{
outfile.put(msg[i]);
}
}
isEOF = true;
break;
}
}
if(isEOF)
{
break;
}
des.DES_Compute(msg, _key, isEncode);
for(int i = 0; i < 8; ++i)
{
outfile.put(msg[i]);
}
}
infile.close();
outfile.close();
}
void CDataDeal::EncryptString(char * str, char * key, bool isEncode)
{
CDES des;
unsigned char _key[8];
memcpy(_key, key, 8);//得到密钥.
unsigned char msg[8];
bool isEOF = false;
while(str[0])
{
memset(msg, 0, 8);
for(int i = 0; i < 8; ++i)
{
if(str[0])
{
msg[i] = (unsigned char)str[i];
}
else
{
--i;
if(i > 0)
{
des.DES_Compute(msg, _key, isEncode);
memcpy(str, msg, 8);
str += 8;
}
isEOF = true;
break;
}
}
if(isEOF)
{
break;
}
des.DES_Compute(msg, _key, isEncode);
memcpy(str, msg, 8);
str += 8;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -