📄 加密解密程序.c
字号:
/********************************************************
*程序名称:加密解密程序
*功能:对文件进行加解密
*编译平台:dev c++
*作者:HungryAnt
*时间:2007-7-20
********************************************************/
#include<stdio.h>
#include<string.h>
int choose(int co){
int i;
printf("\n\n请选择...");
while(1){
i=getch();
i-=48;
if(i<=co && i>=0)return i;
}
}
void weicaozuo(FILE *fin,FILE *fout,char *mima){
int i=0;
char ch;
ch=fgetc(fin);
while(!feof(fin)){
if(mima[i]==0)i=0;
fputc(ch^mima[i],fout);
i++;
ch=fgetc(fin);
}
fclose(fin);
fclose(fout);
}
void jiami(){/*************加密**************/
FILE *fin,*fout;
char filename[50],mima[21];
system("cls");
printf("<<<<<<<<加密解密程序>>>>>>>>\n");
printf("\t-----制作者:HungryAnt\n");
printf("请输入你需要加密的完整文件名:");
scanf("%s",filename);
if((fin=fopen(filename,"rb"))==NULL){
printf("找不到要加密的文件!\n返回初始界面");
return;
}
fout=fopen(strcat(filename,".sec"),"wb");
fputs("HungryAnt",fout);/*sec文件开头*/
fputc('\n',fout);
printf("请输入加密密码,你可以更具次密码来解密\(密码在20个字符之内\):");
scanf("%s",mima);
mima[20]=0;
printf("文件加密开始...\n");
weicaozuo(fin,fout,mima);/************调用文件操作*************/
printf("文件加密完成!");
}
void jiemi(){/*************解密**************/
FILE *fin,*fout;
char filename[50],mima[21],ha[10],newfn[50]="HA_",ch;
int i=0;
system("cls");
printf("<<<<<<<<加密解密程序>>>>>>>>\n");
printf("\t-----制作者:HungryAnt\n");
printf("请输入你需要解密的完整文件名:");
scanf("%s",filename);
if((fin=fopen(filename,"rb"))==NULL){
printf("找不到要解密的文件!\n返回初始界面!");
return;
}
while((ch=fgetc(fin))!='\n')ha[i++]=ch;
ha[i]=0;
if(strcmp(ha,"HungryAnt")!=0){
printf("你所指定的文件不是被本软件加密后的文件。\n返回初始界面!");
return;
}
i=strlen(filename);
filename[i-4]=0;/*去掉后面的.sec*/
fout=fopen(strcat(newfn,filename),"wb");
printf("请输入解密密码\(如果与加密密码不符会出现乱码\):");
scanf("%s",mima);
printf("文件解密开始...");
weicaozuo(fin,fout,mima);/************调用文件操作*************/
printf("文件解密完成!");
}
void zuozhe(){
system("cls");
printf("\t********************************************************\n");
printf("\t*作者:HungryAnt *\n");
printf("\t*E-mail:ljsunlin@126.com *\n");
printf("\t*blog:http://hi.baidu.com/zhongji *\n");
printf("\t*QQ:517377100 *\n");
printf("\t*时间:2007-7-20 *\n");
printf("\t*感谢Cifry帮我想到一个好的加密方法 *\n");
printf("\t********************************************************\n");
}
void shuoming(){
system("cls");
printf("如果你这个简单的程序还不会使用,请参考这个使用说明.\n\n");
printf("加密解密时,最好吧文件放入程序所在的目录下,必须要输入完整的文件名,文件的后缀\n\n");
printf("如果不在同一目录下,会将加密解密后的文件放入原来文件所在的目录!\n\n");
printf("加密后,如果要删除被加密的文件,密码请务必记牢,否则我也不能帮你把原来的文件找回来.\n\n");
printf("如果有建议或者疑问请联系作者:HungryAnt\(饥饿蚂蚁\),在菜单选3就行了\n\n");
printf("还有谁需要该程序的原代码的话,可以联系我,付给我少许的money即可得到有详细注释的源代码!");
}
int main(){
int co;
while(1){
printf("<<<<<<<<加密解密程序>>>>>>>>\n");
printf("\t-----制作者:HungryAnt\n");
printf("\t1.加密\n\t2.解密\n\t3.联系作者\n\t4.傻瓜使用说明\n\t0.退出\n");
co=choose(4);
printf("\n");
switch(co){
case 0:exit(0);
case 1:jiami();
break;
case 2:jiemi();
break;
case 3:zuozhe();
break;
case 4:shuoming();
}
getch();
system("cls");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -