C++实现超简单的文件加密

本文介绍了一个使用C++实现的简单文件加密和解密程序。通过读取文件字节并进行位操作(取反)来实现加密和解密。用户可以选择对文件进行加密或解密操作,加密后的文件名会加上 '_mi' 后缀。程序适用于对文件进行基本的安全保护,但不适用于高强度的加密需求。
摘要由CSDN通过智能技术生成

现在网盘对用户上传东西都得都检查一下,所以有的时候可能会因为内容不符合网络规范被封掉,不过好在目前网盘的检查机制比较弱,只需要一些很简单的加密就能逃过一劫,比如把文件里面的每一个字节都加一个固定数字,把每一个字节都取反等等。我们这里就采用C++,利用每个字节取反的方式来实现简单的文件加密和解密过程。

源代码

#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;

void jiaami();
void jieemi();

int main()
{
    string x;
    cout << "    1.加密     2.解密" << endl;
    cout << ">> ";
    cin >> x;

    if (x == "1")
    {
        jiaami();
    }
    else if (x == "2")
    {
        jieemi();
    }
    else
    {
        cout << "请按照要求输入。。。。" << endl;
    }
    return 0;
}

void jiaami()
{
    cout << "要加密的文件名:";
    char name[128];
    cin >> name;

    fstream fp01;
    fp01.open(name, ios::in | ios::binary);
    fstream fp02;
    strcat(name, "_mi");
    fp02.open(name, ios::out | ios::binary);
    if (fp01.fail() || fp02.fail())
    {
        cout << "文件读取异常,请检查文件名是否有误";
        return;
    }

    char ch = 0;
    while (true)
    {
        fp01.read(&ch, 1);
        if (fp01.eof())
        {
            break;
        }
        ~ch;
        fp02.write(&ch, 1);
    }
    fp01.close();
    fp02.close();
}

void jieemi()
{
    cout << "要解密的文件名:";
    char name[128];
    cin >> name;
    fstream fp01(name, ios::in | ios::binary);
    name[strlen(name) - 3] = '\0';
    fstream fp02(name, ios::out | ios::binary);
    if (fp01.fail() || fp02.fail())
    {
        cout << "文件读取异常,请检查文件名是否有误";
        return;
    }

    char ch;
    while (true)
    {
        fp01.read(&ch, 1);
        if (fp01.eof())
        {
            break;
        }
        ~ch;
        fp02.write(&ch, 1);
    }
    fp01.close();
    fp02.close();
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值