有的时候,我们写了一些文档,或者下载了一些秘密文件,却不想让别人看到。
成都创新互联公司是由多位在大型网络公司、广告设计公司的优秀设计人员和策划人员组成的一个具有丰富经验的团队,其中包括网站策划、网页美工、网站程序员、网页设计师、平面广告设计师、网络营销人员及形象策划。承接:成都网站设计、成都网站建设、网站改版、网页设计制作、网站建设与维护、网络推广、数据库开发,以高性价比制作企业网站、行业门户平台等全方位的服务。如果别人偏要看,这下怎么办?!决不能“凉拌”!
这时候,我们就可以做一个文件加密器!这下别人就看不到了。嘿嘿嘿……
今天,我就教大家用C++做一个简单的文件加密器,而且加密效果还非常好!还可以把加密后的文件反过来解密。(看之前要干什么不用我多说,点赞+关注)
首先,一个文件加密器要有读取文件和保存文件的功能。代码如下:
#include//导入万能头文件
using namespace std;
vectorcodestr; //用来存放读取的信息
void incode(string inpath){ //读取文件函数
ifstream in(inpath); //用读的方式打开文件
string tmp;
while (getline(in, tmp)){
codestr.push_back(tmp);
}
in.close(); //关闭文件流
}
void outcode(string outpath){ //输出文件函数
ofstream out(outpath); //用写的方式打开文件
out.clear(); //清空文件
//代码
out.close(); //关闭文件流
}
int main(){
string s;
while (1){
cout<< "请输入加密(或解密)的文件路径:";
getline(cin, s);
incode(s);
outcode(s);
cout<< "加密(或解密)完毕!"<< endl<< endl;
codestr.clear(); //清空
}
return 0;
}
获取文件信息后,该怎么加密呢?
这里给大家推荐一个既简单,又好用的方法——取反加密。
具体的原理是:把字符串的每一位字符(char)所对应的ASCII码值取反,在把得到的值转换为字符,保存下来。
代码如下:
for (int i = 0; i< codestr.size(); ++i){
//遍历字符串的每一位字符
for (int j = 0; j< codestr[i].size(); ++j){
out<< (char)~codestr[i][j]; //取反,并输出取反后的字符
}
out<< endl;
}
我们的文件加密器就这样做好了!代码大概长这样:
#includeusing namespace std;
vectorcodestr;
void incode(string inpath){
ifstream in(inpath);
string tmp;
while (getline(in, tmp)){
codestr.push_back(tmp);
}
in.close();
}
void outcode(string outpath){
ofstream out(outpath);
out.clear();
for (int i = 0; i< codestr.size(); ++i){
for (int j = 0; j< codestr[i].size(); ++j){
out<< (char)~codestr[i][j];
}
out<< endl;
}
out.close();
}
int main(){
string s;
while (1){
cout<< "请输入加密(或解密)的文件路径:";
getline(cin, s);
incode(s);
outcode(s);
cout<< "加密(或解密)完毕!"<< endl<< endl;
codestr.clear();
}
return 0;
}
运行一下看看效果:
我相信是个人都看不出来加密后的文件原来长什么样。效果是不是非常好?
今天就分享到这里了!记得点赞+关注!
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧