赞
踩
有的时候,我们写了一些文档,或者下载了一些秘密文件,却不想让别人看到。
如果别人偏要看,这下怎么办?!决不能“凉拌”!
这时候,我们就可以做一个文件加密器!这下别人就看不到了。嘿嘿嘿……
今天,我就教大家用C++做一个简单的文件加密器,而且加密效果还非常好!还可以把加密后的文件反过来解密。(看之前要干什么不用我多说,点赞+关注)
首先,一个文件加密器要有读取文件和保存文件的功能。代码如下:
- #include <bits/stdc++.h> //导入万能头文件
- using namespace std;
- vector<string> codestr; //用来存放读取的信息
-
- 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;
- }
我们的文件加密器就这样做好了!代码大概长这样:
- #include <bits/stdc++.h>
- using namespace std;
- vector<string> codestr;
- 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;
- }

运行一下看看效果:
我相信是个人都看不出来加密后的文件原来长什么样。效果是不是非常好?
今天就分享到这里了!记得点赞+关注!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。