1.要打开一些文件或目录
gets(filename);
if(NULL == (fp = fopen(filename,"rb")))
{
//如果不为空 表示文件存在,空的表示文件不存在
printf("您好,您输入的文件不存在\n");
//退出
exit(1);
}
//如果文件存在
printf("文件存在,请输入密码,如:888888\n");
inputpass(password);
pwdlen = (int)strlen(password);
if(0 == pwdlen)
{
printf("对不起!密码长度不能为0");
exit(2);
}
2.读出文件的内容进行加密或解密
fptemp = fopen(tempfile,"wb");
3.把加密的信息写入文件中覆盖原来的数据
while(1)
{
ch = getc(fp);
if(feof(fp))
{
/*判断文件读完没有*/
break;
}
//每取出一个字符就加密
ch^=password[i++];
//ch里就是加密以后的数据
fputc(ch,fptemp);
//判断
if(i == pwdlen)
{
i = 0;
}
}
4.清理
fclose(fp);
fclose(fptemp);
remove(filename);
rename(tempfile,filename);
printf("恭喜你,文件加密或解秘成功");
5.整体代码
#include <iostream>
//引入头文件,标准的输入输出
#include<stdio.h>
#include <cstdio>
//提供了一些字符串所要用的函数
#include <string.h>
//系统函数
#include <stdlib.h>
#include <ctype.h>
/*声明一些变量*/
char ch = '0';
char filename[256]="";//保存输入的数据,文件的路径
FILE *fp = NULL;
FILE *fptemp = NULL;
char password[12] = "123456";
const char tempfile[256] = "temp124567890.temp";
int i = 0;
int pwdlen = 0;
/*封装一些函数*/
/*加密程序v1.0*/
void menu();
void inputpass(char *pass);
/*函数实现*/
void inputpass(char *pass)
{
scanf("%s",pass);
}
void menu()
{
printf(".......................................\n");
printf("................加密小程序.............\n");
printf(".......................................\n");
printf("请输入要加密或解密的文件路径\n");
printf("例如:/user/tian/av.txt**\n");
gets(filename);
if(NULL == (fp = fopen(filename,"rb")))
{
//如果不为空 表示文件存在,空的表示文件不存在
printf("您好,您输入的文件不存在\n");
//退出
exit(1);
}
//如果文件存在
printf("文件存在,请输入密码,如:888888\n");
inputpass(password);
pwdlen = (int)strlen(password);
if(0 == pwdlen)
{
printf("对不起!密码长度不能为0");
exit(2);
}
fptemp = fopen(tempfile,"wb");
while(1)
{
ch = getc(fp);
if(feof(fp))
{
/*判断文件读完没有*/
break;
}
//每取出一个字符就加密
ch^=password[i++];
//ch里就是加密以后的数据
fputc(ch,fptemp);
//判断
if(i == pwdlen)
{
i = 0;
}
}
//循环结束后 清理
fclose(fp);
fclose(fptemp);
remove(filename);
rename(tempfile,filename);
printf("恭喜你,文件加密或解秘成功");
}
/*主函数 程序的入口*/
int main(int argc, char** argv)
{
menu();
return 0;
}
6.运行结果
![](https://i-blog.csdnimg.cn/blog_migrate/4a597b7319b2cd9e46c7c8c6d1d4b1c9.png)