C++加密解密文件

该文章介绍了如何使用C++通过异或操作实现文件的加密和解密。主要方法是读取文件内容,逐字节与特定值(如0x88)进行异或操作,然后将结果写入新文件。加密过程与解密过程相同,因为异或的逆操作还是异或。
摘要由CSDN通过智能技术生成

目录

1. 通过异或来加密解密文件

2. 参考


1. 通过异或来加密解密文件

当然,下面加密方法也可作为解密方法

#include <fstream>
#include <vector>
// 获取解密内容
void get_decrypt_content(std::string _param_path)
{
	std::fstream BeforeFile;
	// 打开待加密				
	BeforeFile.open(_param_path, std::ios::in | std::ios::binary);//读|字节流
	// 获取待加密文件大小	
	BeforeFile.seekg(0, std::ios::end);//3.1定位文件内容指针到末尾
	std::streamoff size = BeforeFile.tellg();	//3.2获取大小
	BeforeFile.seekg(0, std::ios::beg);//3.3 定位文件内容指针到文件头
	
    std::vector<char> model;
	for (std::streamoff i = 0; i < size; i++) 
	{
		model.push_back(char((BeforeFile.get() ^ 0x88)));//加密或解密编码  0x88 
	}
    std::string str_model_temp(model.begin(), model.end());

}

// 加密
void encrypte_file(std::string needEncryptFilePath, std::string saveFilePath)
{
	// 待加密文件的流对象
	std::fstream BeforeFile, AfterFile;

	// 打开待加密				
	BeforeFile.open(needEncryptFilePath, std::ios::in | std::ios::binary);//读|字节流
	// 打开待解密后文件
	AfterFile.open(saveFilePath, std::ios::out | std::ios::binary);

	// 获取待加密文件大小	
	BeforeFile.seekg(0, std::ios::end);//3.1定位文件内容指针到末尾
	std::streamoff  size = BeforeFile.tellg();	//3.2获取大小
	BeforeFile.seekg(0, std::ios::beg);//3.3 定位文件内容指针到文件头
	
	for (std::streamoff i = 0; i < size; i++) 
	{
		//把BeforeFile的内容处理后放入AfterFile中
		AfterFile.put(BeforeFile.get() ^ 0x88);//加密或解密编码  0x88 
	}
	// 关闭两个文件
	BeforeFile.close();
	AfterFile.close();
}

2. 参考

1. 文件加密和解密C/C++_sm2 c++_Chertanis的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值