异或运算,我认为这是一种算法,一种思维方式,更是一个解决问题的方法!一句话概括便是相同为0,不同为1.
就是这简简单单的一句话,却可以帮助我们实现很多事情。
以下便是程序代码,仅供大家参考学习:
//采用异或的方式进行加密解密
#include <iostream>
using namespace std;
int main() {
char srcFileName[20];
char dstFileName[20];
cout<<"请输入待加密文件名:"<<endl;
cin >> srcFileName;
cout<<"请输入加密后文件名"<<endl;
cin >> dstFileName;
//循环读取源文件内容,写入目的文件
int r;
FILE* fpSrc = fopen(srcFileName,"rb");
FILE* fpDst = fopen(dstFileName,"wb");//只写方式打开或新建一个二进制文件,只允许写数据。
char temp;
while(1)
{
//从src文件中读取一个字节的数据放到temp中
r = fread(&temp,1,1,fpSrc);
if(r == 1){
temp ^= 0x45;//加密,异或,01000101
fwrite(&temp,1,1,fpDst);
}
}
// 关闭保存两个文件
fclose(fpSrc);
fclose(fpDst);
while(1);
return 0;
}