C语言代码实现简单的加密、解密文件

野性酷女 2022-11-01 05:24 489阅读 0赞

代码如下:

  1. #include<stdlib.h>
  2. #include <stdio.h>
  3. #pragma warning(disable : 4996)
  4. int getfilesize(char *path)
  5. {
  6. FILE *pf = fopen(path, "r");
  7. if (pf == NULL)
  8. {
  9. return -1;
  10. }
  11. else
  12. {
  13. fseek(pf, 0, SEEK_END);
  14. int length = ftell(pf);
  15. return length;
  16. }
  17. }
  18. /* void copy(char *oldpath, char *newpath) { FILE *pfr, *pfw; pfr = fopen(oldpath, "rb"); pfw = fopen(newpath, "wb"); if (pfr == NULL || pfw == NULL) { fclose(pfr); fclose(pfw); return; } else { int length = getfilesize(oldpath); char *p = (char *)malloc(length*sizeof(char)); fread(p, sizeof(char), length, pfr); fwrite(p, sizeof(char), length, pfw); fclose(pfr); fclose(pfw); } } */
  19. void EncryptFile(char *oldpath, char *newpath)
  20. {
  21. int i = 0;
  22. FILE *pfr, *pfw;
  23. pfr = fopen(oldpath, "rb");
  24. pfw = fopen(newpath, "wb");
  25. if (pfr == NULL || pfw == NULL)
  26. {
  27. fclose(pfr);
  28. fclose(pfw);
  29. return;
  30. }
  31. else
  32. {
  33. int length = getfilesize(oldpath);
  34. char *p = (char *)malloc(length*sizeof(char));
  35. fread(p, sizeof(char), length, pfr);
  36. for (i = 0; i < length; i++)
  37. {
  38. p[i] ^= 'A';
  39. }
  40. fwrite(p, sizeof(char), length, pfw);
  41. fclose(pfr);
  42. fclose(pfw);
  43. }
  44. }
  45. void DecryptFile(char *oldpath, char *newpath)
  46. {
  47. int i = 0;
  48. FILE *pfr, *pfw;
  49. pfr = fopen(oldpath, "rb");
  50. pfw = fopen(newpath, "wb");
  51. if (pfr == NULL || pfw == NULL)
  52. {
  53. fclose(pfr);
  54. fclose(pfw);
  55. return;
  56. }
  57. else
  58. {
  59. int length = getfilesize(oldpath);
  60. char *p = (char *)malloc(length*sizeof(char));
  61. fread(p, sizeof(char), length, pfr);
  62. for (i = 0; i < length; i++)
  63. {
  64. p[i] ^= 'A';
  65. }
  66. fwrite(p, sizeof(char), length, pfw);
  67. fclose(pfr);
  68. fclose(pfw);
  69. }
  70. }
  71. void main()
  72. {
  73. // 原始文件的路径
  74. char *oldpath = "tmAppAbDBB.db";
  75. // 加密后的路径
  76. char *newpath = "aa.db";
  77. // 解密后的路径
  78. char *newDecryptFilepath = "cc.db";
  79. EncryptFile(oldpath, newpath);
  80. DecryptFile(newpath, newDecryptFilepath);
  81. }

发表评论

表情:
评论列表 (有 0 条评论,489人围观)

还没有评论,来说两句吧...

相关阅读

    相关 简单加密解密

    数据加密一种最简单的加密方式是异或运算加密,可以用来简单的数据传输加密和文件,字符串等加密。 > 数学运算符为XOR(exclusive OR),在计算机中通常用"^"的符号