急求c语言程序-文件的加解密处理 高手请进 ! 谢谢!
课题六 文件的加解密处理1系统的基本功能
编写一个对文件(由数字或字母组成)进行加密解密的程序。可以将所需要的内容(整个文件或者输入的一行字符)加密,也可以将存储的加密文件翻译回来。例如加密时可以将选取内容的每个字符依次反复加上”49632873”中的数字,如果范围超过ASCII码值的032(空格)—122(‘z’),则进行模运算(既N%122).解密与加密的顺序相反。
2、要求及提示
2.1 程序执行过程
(1)从键盘输入要进行加密的一行字符串或者需要加密的文件名。
(2)显示菜单:
1. 设置加密方法
2. 加密
3. 解密
4. 显示原始文件和解密文件
(3)选择菜单,进行相应的操作。加密方法是设置一加密字符串以及对文件的哪些部分进行加密;加密是将原始文件加密并保存到文件中;解密是将加了密的文件还原并保存到文件中,同时应比较与原始文件的一致性;显示是将文件在屏幕上显示出来,供人工校对。
2.2程序设计的具体要求
(1) 加密方法用结构表示
struct password /*加密方法*/
{ char ps[10]; /*加密字符串*/
long l; /*加密间隔字节数*/
long wd;} /*加密的字节数*/
(2)定义原始文件sourse.txt、加密文件result.txt和还原文件recall.txt
(3) 程序模块及函数功能:
a) 在屏幕上显示文件 void printtxt();
b) 加密void encode();
c) 解密void decode();
d) 文件比较void cmptxt();
2.3 算法提示
(1)加密时,每个字符依次反复加上”49632873”中的数字,如果范围超过ASCII码值的032(空格)—122(‘z’),则进行模运算(即N%122).
例如:加密the
(t)116+4,(h)104+9,(e)101+6
变为xqk
(2) 解密:解密过程与加密过程的顺序正好相反,即从第一个字符开始,每个字符依次反复减去”49632873”中的数字,若执行减法后得到一个负数,则把这个负数加122然后取余,即 (N+122)%122, 其中N为负数。
例如:把xqk解密
(x) 120-4 (q)111-9 (k) 107-6
变为 the
2.3 其他要求
(1)变量、函数命名符合规范。
(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
(3)程序的层次清晰,可读性强。