【花式表白】,情书加密,这样泡小师妹,没跑了。
首先先上效果图。
文件a是初始文本,文件b是由文件a加密而成的。我们发给小师妹的文件可以是b文件。而c文件则是由b文件解密出来的。
其中如果输入错了解密的密码,就会出现另外一堆乱码。
只有解密的密码正确,才能输出正确的内容。
加密原理:
异或加密,我们先要知道,任何字符异或一个内容之后,再重复异或之前相同的内容,那么这个字符不变。我们可以把文本内的所有内容都进行异或处理加密。然后再进行异或处理解密。只要钥匙是不变的,那么他们解密后的内容是一样的。
#include<iostream>#include <fstream>#include <vector>#include<strstream>#include<string>#include <cstdlib>#include <windows.h>#include<sstream>#include <algorithm>using namespace std;vector<string>alltxt;void writeTxt(){ofstream fout("b.txt");if (fout) {完整代码,请移步到公众号:诗一样的代码。}fout.close();}//读取文件void encode(){ifstream infile;infile.open("a.txt",std::ios::app);string s;cout<<"请输入密码:";int pw;cin>>pw;while(getline(infile,s)){完整代码,请移步到公众号:诗一样的代码。alltxt.push_back(s);}infile.close();}void decode(){ifstream infile;infile.open("b.txt",std::ios::app);ofstream fout("c.txt");string s;while(getline(infile,s)){完整代码,请移步到公众号:诗一样的代码。cout<<s<<endl;fout<<s<<endl;}fout.close();infile.close();}int main(){encode();writeTxt();decode();}
由于加密的钥匙是自己填写的,我们可以任意修改填写钥匙。由于加密内容的保密性,我们可以把
1加密后的文本
2解密钥匙
3解密exe
以上全部内容发给小师妹,那事情就成了。
当然,为了增加成功率,你也可以批量发给多个小师妹,只要密码不一样,同一个exe,同一份文本,也不会串频道。(狗头表情,开个玩笑)
小Tips:完整代码,请移步到公众号:诗一样的代码。