- // SimpleFileEncryption.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- /*
- 加密思路:fgetc()函数可以每次从文件中读取一个字符,fputc()函数每次可以向文件中写入一个字符。
- 利用该特性,首先打开要加密的文件,同时创建一个临时文件。
- 每次从要加密的文件中读取一个字符,对其进行运算(此处为取反)后再写入到文件。
- 由于此处使用取反来改变字符,因此只需要对文件再进行一次 加密即可解密。
- */
- int main()
- {
- FILE *fp;
- FILE *temp;
- char ch;
- char strFileName[64];
- printf("Please Input File Name:");
- scanf_s("%s",strFileName,64);
- strFileName[63] = '\0';
- errno_t err;
- //以读方式打开文件
- err=fopen_s(&fp, strFileName, "rb+");
- if (err !=0) {
- printf("Open File %s Error!\n", strFileName);
- return -1;
- }
- //以写方式创建一个临时文件
- fopen_s(&temp,"TempFile.pyq", "wb+");
- if (err !=0){
- printf("Create Temporary File Error!\n");
- return -1;
- }
- //循环读取并进行取反操作
- while (!feof(fp))
- {
- ch = fgetc(fp); //每次读取一个字符
- if ((int)ch != -1 && (int)ch != 0){
- ch = ~ch; //取反;
- fputc(ch, temp); //写入到临时文件
- }
- }
- fclose(temp);
- fclose(fp);
- //删除原文件
- err=remove(strFileName);
- if (err==0) {
- //文件删除成功,将临时文件重命名为原文件
- if (rename("TempFile.pyq", strFileName) == 0) {
- printf("Encryption success!");
- }
- }
- return 0;
- }
简单文件加密
最新推荐文章于 2024-07-25 17:38:25 发布