C语言文件加密解密(简单)

1. 文本内容为英文的文件加密解密小程序

加密:

    #include <stdio.h>
    #define key ox8a;
    int main(void) {
        char c, filename[20];
        FILE * fp1, * fp2;

        printf("请输入待加密的文件名:\n");
        scanf("%s", filename);
        fp1 = fopen(filename, "r");   //以只读的方式打开
        fp2 = fopen("secret.txt", "w");	 //以写的方式打开
        do {
            c = fgetc(fp1);
            if (c >= 32 && c <= 126) {
                c = c - 32;
                c = 126 - c;
            }
            if (c != -1)
                fprintf(fp2, "%c", c);
        } while (c != -1);
        fclose(fp1);
        fclose(fp2);
    }

解密:

    #include <stdio.h>
    #include <string.h>
    int main(void) {
        char c, filename[20];
        char verification_code[20];
        FILE * fp1, * fp2;
        printf("请输入待解密文件名:\n");
        scanf("%s", filename);
        printf("请输入验证码:\n");
        scanf("%s", verification_code);
        if (strcmp(verification_code, "shan") == 0) {
            fp1 = fopen(filename, "r");
            fp2 = fopen("public.txt", "w");
            do {
                c = fgetc(fp1);
                if (c >= 32 && c <= 126) {
                    c = 126 - c;
                    c = 32 + c;
                }
                if (c != -1)
                    fprintf(fp2, "%c", c);
            }
            while (c != -1);
        } else {
            printf("验证码错误!请重新输入:\n");
            scanf("%s", filename);
        }
    }

2. 文本内容为中文汉字的文件加密解密小程序

加密:

    #include <stdio.h>
    #define KEY 1
    int main(void) {
        char c, filename[20],t;
        FILE * fp1, * fp2;

        printf("请输入待加密的文件名:\n");
        scanf("%s", filename);
        fp1 = fopen(filename, "r");   //以只读的方式打开
        fp2 = fopen("secret.txt", "w");	 //以写的方式打开
  		do{
			c=fgetc(fp1);
			t = c;            //考虑判断条件
			c = c ^ KEY;	
			if(t!=-1){
				fprintf(fp2,"%c",c);				
			}
		}while(t!=-1);
        fclose(fp1);
        fclose(fp2);
    }

解密:

    #include <stdio.h>
    #include <string.h>
    #define KEY 1
    int main(void) {
        char c, filename[20],t;
        char verification_code[20];
        FILE * fp1, * fp2;
        printf("请输入待解密文件名:\n");
        scanf("%s", filename);
        printf("请输入验证码:\n");
        scanf("%s", verification_code);
        if (strcmp(verification_code, "open") == 0) {
            fp1 = fopen(filename, "r");
            fp2 = fopen("public.txt", "w");
			do{
				c=fgetc(fp1);
				t = c;				//考虑判断条件
				c = c ^ KEY;
				if(t!=-1){
					fprintf(fp2,"%c",c);			
				}
			}while(t!=-1);
        } else {
            printf("验证码错误!请重新输入:\n");
            scanf("%s", filename);
        }
    }

删除指定文件(可用于删除 public 文件)

remove(函数)

#include<stdio.h>
int main(){
    char filename[80];
    printf("The file to delete:");
    gets(filename);
    if( remove(filename) == 0 )        //调用并检查是否删除
        printf("Removed %s.", filename);
    else
        perror("remove"); 	//输出存在error中的内容
}
发布了108 篇原创文章 · 获赞 114 · 访问量 8577

猜你喜欢

转载自blog.csdn.net/weixin_45773503/article/details/104450904