【花式表白】,情书加密,这样泡小师妹,没跑了。
首先先上效果图。
文件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) { //本人收徒,有需要学习c++/python编程的小伙伴,可以加一下q:2316773638}fout.close();
}//读取文件
void encode()
{ifstream infile; infile.open("a.txt",std::ios::app); string s;cout<<"请输入密码:";int pw;cin>>pw;while(getline(infile,s)){ //本人收徒,有需要学习c++/python编程的小伙伴,可以加一下q:2316773638alltxt.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)){ //本人收徒,有需要学习c++/python编程的小伙伴,可以加一下q:2316773638cout<<s<<endl;fout<<s<<endl;}fout.close(); infile.close();
}int main()
{encode();writeTxt();decode();
}
由于加密的钥匙是自己填写的,我们可以任意修改填写钥匙。由于加密内容的保密性,我们可以把
1加密后的文本
2解密钥匙
3解密exe
以上全部内容发给小师妹,那事情就成了。
当然,为了增加成功率,你也可以批量发给多个小师妹,只要密码不一样,同一个exe,同一份文本,也不会串频道。(狗头表情,开个玩笑)