- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络安全实验报告
学院 专业 班 学号 姓名 成绩评定_______ 教师签名
实验 1 题目 对称密码算法DES 课程名称 网络安全
PAGE
PAGE 5
实验一 对称密码算法DES
一、实验目的
通过用DES算法对实际的数据进行加密和解密来深刻了解DES的运行原理。
二、实验环境
运行Windows或Linux操作系统的PC机,具有gcc(Linux)、VC(Windows)等C语言编译环境。
三、实验内容和步骤
(1)使用附录提供的程序对一个文件进行加密和解密,程序代码和执行结果如下所示。
程序代码:
#include des.h
#include stdio.h
int main(int argc, char *argv[])
{
unsigned char key[8]= { a,b,c,d,a,b,c,d };
des_key skey;
des_setup(key,8,0,skey);
FILE *fd1;
FILE *fd2;
FILE *fd3;
fd1=fopen(plaintext1.txt,rb);
fd2=fopen(cipertext.txt,wb);
int count=0;
unsigned char p_buf[8];
unsigned char c_buf[8];
while(true)
{
count=fread(p_buf,sizeof(unsigned char),8,fd1);
if(count8)
for(int i=count;i=7;i++)
p_buf[i]=\0;
des_ecb_encrypt(p_buf,c_buf,skey);
fwrite(c_buf,sizeof(unsigned char),8,fd2);
if(count8)
break;
count=0;
}
fclose(fd1);
fclose(fd2);
fd2=fopen(cipertext.txt,rb);
fd3=fopen(plaintext2.txt,wb);
while(true)
{
count=fread(p_buf,sizeof(unsigned char),8,fd2);
if(count==0)
break;
des_ecb_decrypt(p_buf,c_buf,skey);
fwrite(c_buf,sizeof(unsigned char),8,fd3);
count=0;
}
fclose(fd2);
fclose(fd3);
system(PAUSE);
return 0;
}
程序执行结果:
例如plaintext1.txt存放的明文为:
加密后的密文为:
解密后plaintext2.txt中的明文为:
(2)使用附录提供的程序对输入的十六进制数加密(把输入的字符转化成整数。例如,输入两个字符1F,转化成二进制数000lllll),比较输入和输出。当把输入的数改变一个位时(如把1F变为1E),比较输出的变化,并说明原因。
程序输出结果如下图所示:
心得体会
对对称密码算法DES更加的深刻,程序要仔细耐心调试察看,不要被错误吓到,同时在修改老师给的源程序的时候懂得了如何细心的认真的仔细的看每一个编程程序。
文档评论(0)