资源简介
C++开发的文件加密系统,绝对好用!
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
using namespace std;
class FileEncryptionSystem //抽象基类
{
public:
virtual void Encrypt(char plain[20]char crypt[20]) = 0; //加密虚函数
virtual void Decrypt(char plain[20]char crypt[20]) = 0; //解密虚函数
protected:
char PlainText[20]; //明文
char CryptText[20]; //密文
char FileContent[300]; //文件内容
};
class Caesar:public FileEncryptionSystem
{
public:
virtual void Encrypt(char plain[20]char crypt[20]);
virtual void Decrypt(char plain[20]char crypt[20]);
private:
char Key;
};
void Caesar::Encrypt(char plain[20]char crypt[20])
{//加密
strcpy(PlainTextplain);
strcpy(CryptTextcrypt);
//文件操作
ifstream infile(PlainTextios::in); //定义输入文件流,以输入方式打开文件
if(!infile)
{
cerr< exit(1);
}
ofstream outfile(CryptTextios::out); //默认为删除原有数据新建
if(!outfile)
{
cerr< exit(1);
}
//加密算法
cout<<“请输入加密密匙(数字):“;
cin>>Key;
while(!infile.eof())
{
infile.getline(FileContent300‘\0‘);
cout<<“原文件内容为:“< Sleep(2000);
for( unsigned i = 0; i < strlen(FileContent); i++)
//FileContent[i] = FileContent[i] + Key;
FileContent[i] = FileContent[i] + (Key-‘0‘);
outfile << FileContent;
cout<<“文件加密成功!按任意键返回。“;
cin.get();
cin.get();
}
infile.close();
outfile.close();
}
void Caesar::Decrypt(char plain[20]char crypt[20])
{//解密
strcpy(PlainTextplain);
strcpy(CryptTextcrypt);
//文件操作
ifstream infile(PlainTextios::in); //定义输入文件流,以输入方式打开文件
if(!infile)
{
cerr< exit(1);
}
ofstream outfile(CryptTextios::out); //默认为删除原有数据新建
if(!outfile)
{
cerr< exit(1);
}
//解密
cout<<“请输入解密密匙(数字):“;
cin>>Key;
while(!infile.eof())
{
infile.getline(FileContent300‘\0‘);
for( unsigned i = 0; i < strlen(FileContent); i++)
//FileContent[i] = FileContent[i] - Key;
FileContent[i] = FileContent[i] - (Key-‘0‘);
outfile << FileContent;
cout<<“解密后文件内容为:“< Sleep(2000);
cout<<“文件解密成功!按任意键返回。“;
cin.get();
cin.get();
}
infile.close();
outfile.close();
}
class Shift:public FileEncryptionSystem
{
public:
virtual void Encrypt(char plain[20]char crypt[20]);
virtual void Decrypt(char plain[20]char crypt[20]);
private:
int Key;
};
void Shift::Encrypt(char plain[20]char crypt[20])
{//加密
strcpy(PlainTextplain);
strcpy(CryptTextcrypt);
//文件操作
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 46 2015-06-13 12:00 文件加密系统\123.txt
文件 46 2015-06-13 17:59 文件加密系统\456.txt
文件 46 2015-06-13 18:00 文件加密系统\789.txt
文件 988699 2015-06-13 11:13 文件加密系统\bin\Debug\文件加密系统.exe
文件 10946 2015-06-13 11:13 文件加密系统\main.cpp
文件 970102 2015-06-13 17:59 文件加密系统\main.exe
文件 21614 2015-06-13 17:59 文件加密系统\main.o
文件 45544 2015-06-13 11:13 文件加密系统\obj\Debug\main.o
文件 1104 2015-01-08 08:31 文件加密系统\文件加密系统.cbp
文件 336 2015-06-13 11:16 文件加密系统\文件加密系统.depend
文件 324 2015-06-13 15:41 文件加密系统\文件加密系统.layout
目录 0 2015-06-13 11:13 文件加密系统\bin\Debug
目录 0 2015-06-13 11:13 文件加密系统\obj\Debug
目录 0 2015-06-11 08:07 文件加密系统\bin
目录 0 2015-06-11 08:07 文件加密系统\obj
目录 0 2015-06-18 17:53 文件加密系统
----------- --------- ---------- ----- ----
2038807 16
评论
共有 条评论