⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 加密解密程序.c

📁 本程序用C语言在TC的平台上实现了简单的加密解密功能。
💻 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 + -