900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > (C语言)简单的文件加密和解密程序

(C语言)简单的文件加密和解密程序

时间:2019-03-27 19:27:13

相关推荐

(C语言)简单的文件加密和解密程序

一个简单的文件加密和解密程序

main.c

#include <stdio.h>#include <stdlib.h>#include "fun.h"int main(int argc ,char *argv[]){while(1){int cmd=0;print_help();printf("请输入指令:");scanf("%d",&cmd);if(cmd==1){char dest_file[31]="";char src_file[31]="";unsigned long file_length=0;char *read=NULL;unsigned int password=0;//从键盘获取源文件和目的文件名字get_file_name(dest_file,src_file);//从文件中读出内容read = read_src_file(&file_length,src_file);//获取加密passwordprintf("请输入密码:");scanf("%u",&password);//字符数组加密read=file_text_encrypt(read,file_length,password);//保存文件save_file(read,file_length,dest_file);}else if (cmd==2){char dest_file[31]="";char src_file[31]="";unsigned long file_length=0;char *read=NULL;unsigned int password=0;//从键盘获取源文件和目的文件名字get_file_name(dest_file,src_file);//从文件中读出内容read = read_src_file(&file_length,src_file);//获取加密passwordprintf("请输入密码:");scanf("%u",&password);//字符数组加密read=file_text_decrypt(read,file_length,password);//保存文件save_file(read,file_length,dest_file);}else if (cmd==3){break;}else{printf("输入指令出错!!!\n");}}return 0;}

fun.c

#include <stdio.h>#include <stdlib.h>void print_help(){printf("********1:加密文件***********\n");printf("********2:解密文件***********\n");printf("********3:退出程序***********\n");}void get_file_name(char * dest_file_name,char * src_file_name){printf("请输入源文件的名称:");scanf("%s",src_file_name);printf("请输入目的文件的名称:");scanf("%s",dest_file_name);return;}char *read_src_file(unsigned long *file_length,char *src_file_name){char *data=NULL;FILE *fp;fp=fopen(src_file_name,"r");//只读的方式打开文件if(fp==NULL){perror("fopen");return NULL;}//流指针go尾部fseek(fp,0,2);//流指针的偏移量*file_length = ftell(fp);//流指针复位rewind(fp);//申请空间保存文件data=(char *)calloc(1,*file_length);if(NULL==data){perror("calloc");return NULL;}//一次性读fread(data,*file_length,1,fp);fclose(fp);return data;}char *file_text_encrypt(char * src_file_text,unsigned long int length,unsigned int password){char *data=NULL;unsigned int i=0;for(i=0;i<length;i++){src_file_text[i] += password;}return src_file_text;}void save_file(char* text,unsigned long int length,char * file_name){char *data=NULL;FILE *fp;fp=fopen(file_name,"w");if(NULL==fp){perror("fp");return;}//写fwrite(text,length,1,fp);fclose(fp);if(text !=NULL){free(text);text =NULL;}return;}char *file_text_decrypt(char * src_file_text,unsigned long int length,unsigned int password){char *data=NULL;unsigned int i=0;for(i=0;i<length;i++){src_file_text[i] -= password;}return src_file_text;}

fun.h

#ifndef __FUN_H__#define __FUN_H__extern void print_help();extern void get_file_name(char * dest_file_name,char * src_file_name);extern char *read_src_file(unsigned long *file_length,char *src_file_name);extern char *file_text_encrypt(char * src_file_text,unsigned long int length,unsigned int password);extern void save_file(char* text,unsigned long int length,char * file_name);extern char *file_text_decrypt(char * src_file_text,unsigned long int length,unsigned int password);#endif

运行查看

结果

OK!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。