• 大小: 432KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: C/C++
  • 标签: 文件加密  

资源简介

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


评论

共有 条评论