ImageVerifierCode 换一换
你正在下载:

实验1.docx

[预览]
格式:DOCX , 页数:11 ,大小:348.27KB ,
资源ID:10435716      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10435716.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验1.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验1.docx

1、实验1云南大学软件学院School of Software, Yunnan University成绩学 期: 2015年秋季学期 课程名称: 密码技术 任课教师: 杨维忠 学生姓名: 学 号: 实验项目: 实验一 联系电话: 电子邮件: 完成提交时间:2015年 10 月 日密码技术实验报告实验项目:实验一,第一题实验要求(内容)实现维吉尼亚密码,用键盘接收明文和密钥,屏幕打印密文和解密后的明文。实验环境操作系统:Win7 64位操作系统 编译环境:Visual Studio 2013实现功能实现了维吉尼亚密码,用键盘接收明文和密钥,屏幕打印密文和解密后的明文。达到了题目要求数据结构char

2、pt100, key50, cip100;/分别用来存储明文、密钥、密文int n,p;/n用来存储密钥key的长度,p用来存储明文字符串长度。程序流程主函数main 调用了两个函数:Vigenere_encrypt和Vigenere_decrypt分别进行维吉尼亚密码的加解密。Vigenere_encrypt的函数接口是char pt,char key,char cip,int n,int p ; Vigenere_decrypt的函数接口是char cip, char key, char pt, int n, int p代码与代码分析Function1: void Vigenere_enc

3、rypt(char pt,char key,char cip,int n,int p)实现的功能:用维吉尼亚算法进行加密操作,函数接口就是传入的明文pt,密钥key,密文cip,以及密钥长度n,明文长度p。实现的主要思路:将明文加上密钥再减去32即可得到密文的大写,判断若密文的ASCII码若大于了90,则减去26来处理。called by : main函数Input(type): char pt,char key,int n,int pOutput(type): char cipReturn(type): void无返回值Function2: void Vigenere_decrypt(cha

4、r cip, char key, char pt, int n, int p)实现的功能:用维吉尼亚算法进行解密操作,函数接口就是传入的明文pt,密钥key,密文cip,以及密钥长度n,明文长度p。实现的主要思路:将密文减去密钥再加上32即可得到明文的小写,判断若明文的ASCII码若小于了97,则加上26来处理。called by : main函数Input(type): char cip,char key,int n,int pOutput(type): char ptReturn(type): void无返回值Function3: int main(int argc,char *argv)

5、实现的功能:通过调用函数Vigenere_encrypt和Vigenere_decrypt实现维吉尼亚加解密操作。实现的主要思路:先输入明文,密钥,对明文密钥求长度,再传入Vigenere_encrypt和Vigenere_decrypt两个函数中。calls: Vigenere_encrypt,Vigenere_decryptInput(type): char pt,char keyOutput(type): char cip,char pt,Return(type): int 实验输入(可加截图):结果输出(可加截图):实验小结收获:刚开始做实验,回顾了C语言,熟悉了相关的C语言的函数调用

6、实验项目:实验一,第二题 实验要求(内容)实现单表替换密码,用键盘接收明文和密钥,屏幕打印替换表和密文。实验环境操作系统:Win7 64位操作系统 编译环境:Visual Studio 2013实现功能实现了单表替换密码,用键盘接收明文和密钥,屏幕打印替换表和密文。达到了题目要求数据结构char k26, plain26, p100, cipher100; / k26用来保存扩展的密钥,plain26明文表,/p100, cipher100分别为明密文char key20;/输入的密钥程序流程主函数main 调用了两个函数:plaintable和key_to_k进行对密钥的扩展和替换表的初始化

7、。plaintable的函数接口是char plain26; key_to_k的函数接口是char k, char key。代码与代码分析Function1: void plaintable(char plain26)实现的功能: 实现一个字母表的创建实现的主要思路: 将plain0赋值为a,此后的plain1,plain2依次加一。 Called By: main函数 Input(type) char plain26 Output(type): char plain26 Return(type): void无返回值 Function2: void key_to_k(char k, char

8、key)实现的功能: 实现输入的密钥扩展为不重复的26位字母实现的主要思路: 将输入的密钥先去掉重复字母,剩下的按字母表顺序写下作为密钥。 Called By: main函数 Input(type) char key Output(type): char k Return(type): void无返回值Function3: main(int argc,char *argv)实现的功能: 实现单表替换密码加密,输出替换表和密文实现的主要思路:先输出替换表,再一一加密输出密文。 Calls: plaintable(plain); key_to_k(k,key); Input(type) char

9、key,char p Output(type): char cipher Return(type): int实验输入(可加截图):结果输出(可加截图):实验小结本次实验最重要的也就是密钥的生成过程,将输入的密钥去掉重复字母,然后剩下的按字母表的顺序加入,生成替换表,然后一对一加密就行。实验项目:实验一,第三、四题实验要求(内容)在实现1的基础上,用维吉尼亚密码实现控制台对英文文本文件,明文和密文都以文件形式存在的加解密 cipher -e/-d key inputfile outputfile在实现3的基础上,实现控制台对所有文件(中英文文本、符号甚至任意的文件)的加解密实验环境操作系统:Wi

10、n7 64位操作系统 编译环境:Visual Studio 2013实现功能用维吉尼亚密码实现了控制台对英文文本文件,明文和密文都以文件形式存在的加解密在实现3的基础上,实现控制台对所有文件(中英文文本、符号甚至任意的文件)的加解密,达到了题目要求数据结构clock_t a, b; /时钟char key50,inputfile50,outputfile50; /密钥,两个文件路径文件名char *pla, *text; /指向明文和密文的指针FILE *fp1 = NULL, *fp2 = NULL; /文件指针程序流程main函数调用了Encryption和Decryption函数进行对任

11、意文件的加解密操作,Encryption函数进行文件的加密操作,函数接口是:char key,char plainpath,char cipherpath;Decryption函数进行文件的解密操作,函数接口是:char key, char cipherpath, char plainpath代码与代码分析Function1: void Encryption(char key,char plainpath,char cipherpath)主要功能:实现文件的加密操作主要实现思路:1) 打开文件,fread读取文件信息,为文件分配一个缓冲区保存信息2) 对缓冲区的数据进行加解密操作3) 再将操作

12、后的数据用fwrite写入文件。 Called By: main(int argc,char* argv) Input(type) char key,char plainpath,char cipherpath Return(type): voidFunction2: void Decryption(char key, char cipherpath, char plainpath)主要功能:实现文件的解密操作主要实现思路:1) 首先打开文件,fread读取文件信息,为文件分配一个缓冲区保存信息2) 对缓冲区的数据进行加解密操作,再将操作后的数据用fwrite写入文件 Called By: m

13、ain(int argc,char* argv) Input(type) char key, char cipherpath, char plainpath Return(type): voidFunction3: int main(int argc,char* argv)主要功能:实现对文件的加解密功能主要实现思路:输入-e/-d选择进行加密还是解密,输入密钥,输入两个文件路径及文件名调用Encryption、Decryption函数,实现对文件的加解密。 Calls: Encryption、Decryption Input(type) char k; char key50, inputfile50, outputfile50; Output(type): clock_t Return(type): int实验输入(可加截图):控制台实现加密:控制台实现解密:结果输出(可加截图):实验小结这次实验使用了fread、fwrite读写文件,实现了控制台下进行文件加解密。但是对读取到的文件一次分配了所有的内存,没有使用按每次1M读取,是不足之处,下一次实验会有所改进。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1