当前位置:   article > 正文

用C++做一个文件加密器_c++ 文件加密

c++ 文件加密

有的时候,我们写了一些文档,或者下载了一些秘密文件,却不想让别人看到。

如果别人偏要看,这下怎么办?!决不能“凉拌”!

这时候,我们就可以做一个文件加密器!这下别人就看不到了。嘿嘿嘿……

今天,我就教大家用C++做一个简单的文件加密器,而且加密效果还非常好!还可以把加密后的文件反过来解密。(看之前要干什么不用我多说,点赞+关注)

首先,一个文件加密器要有读取文件和保存文件的功能。代码如下:

  1. #include <bits/stdc++.h> //导入万能头文件
  2. using namespace std;
  3. vector<string> codestr; //用来存放读取的信息
  4. void incode(string inpath){ //读取文件函数
  5. ifstream in(inpath); //用读的方式打开文件
  6. string tmp;
  7. while (getline(in, tmp)){
  8. codestr.push_back(tmp);
  9. }
  10. in.close(); //关闭文件流
  11. }
  12. void outcode(string outpath){ //输出文件函数
  13. ofstream out(outpath); //用写的方式打开文件
  14. out.clear(); //清空文件
  15. //代码
  16. out.close(); //关闭文件流
  17. }
  18. int main(){
  19. string s;
  20. while (1){
  21. cout << "请输入加密(或解密)的文件路径:";
  22. getline(cin, s);
  23. incode(s);
  24. outcode(s);
  25. cout << "加密(或解密)完毕!" << endl << endl;
  26. codestr.clear(); //清空
  27. }
  28. return 0;
  29. }

获取文件信息后,该怎么加密呢?

这里给大家推荐一个既简单,又好用的方法——取反加密。

具体的原理是:把字符串的每一位字符(char)所对应的ASCII码值取反,在把得到的值转换为字符,保存下来。

代码如下:

  1. for (int i = 0; i < codestr.size(); ++i){
  2. //遍历字符串的每一位字符
  3. for (int j = 0; j < codestr[i].size(); ++j){
  4. out << (char)~codestr[i][j]; //取反,并输出取反后的字符
  5. }
  6. out << endl;
  7. }

我们的文件加密器就这样做好了!代码大概长这样:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. vector<string> codestr;
  4. void incode(string inpath){
  5. ifstream in(inpath);
  6. string tmp;
  7. while (getline(in, tmp)){
  8. codestr.push_back(tmp);
  9. }
  10. in.close();
  11. }
  12. void outcode(string outpath){
  13. ofstream out(outpath);
  14. out.clear();
  15. for (int i = 0; i < codestr.size(); ++i){
  16. for (int j = 0; j < codestr[i].size(); ++j){
  17. out << (char)~codestr[i][j];
  18. }
  19. out << endl;
  20. }
  21. out.close();
  22. }
  23. int main(){
  24. string s;
  25. while (1){
  26. cout << "请输入加密(或解密)的文件路径:";
  27. getline(cin, s);
  28. incode(s);
  29. outcode(s);
  30. cout << "加密(或解密)完毕!" << endl << endl;
  31. codestr.clear();
  32. }
  33. return 0;
  34. }

运行一下看看效果:

我相信是个人都看不出来加密后的文件原来长什么样。效果是不是非常好?

今天就分享到这里了!记得点赞+关注!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/990877
推荐阅读
相关标签
  

闽ICP备14008679号