



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一对称密码算法DES一、实验目的通过用DES算法对实际的数据进行加密和解密来深刻了解DES的运行原理。二、实验环境运行Windows或Linux操作系统的PC机,具有gcc(Linux)、VC(Windows)等C语言编译环境。三、实验报告要求〔1〕使用附录提供的程序对一个文件进行加密和解密,提交程序代码和执行结果。〔2〕使用附录提供的程序对输入的十六进制数加密〔把输入的字符转化成整数。例如,输入两个字符1F,转化成二进制数000lllll〕,比拟输入和输出。当把输入的数改变一个位时〔如把1F变为1E〕,比拟输出的变化,并说明原因。四、实验内容和步骤〔1〕使用附录提供的程序对一个文件进行加密和解密,程序代码和执行结果如下所示。程序代码:intmain(intargc,char*argv[]){ //定义一个文件输入流类对象infile ifstreaminfile("Arthas.txt",ios::in); if(infile==0){ cout<<"出错啦!!"<<endl; exit(1); } //定义一个文件输出流类对象outfile ofstreamoutfile("encreption.txt",ios::out); if(outfile==0){ cout<<"错啦!"<<endl; exit(1); } //定义一些变量 inti=0; unsignedcharplain[9]="12345678",encreption[9]="12345678",key[8]={'a','b','c','d','a','b','c','d'}; symmetric_keyskey; des_setup(key,8,0,&skey);// des_ecb_encrypt(pt,ct,&skey); while(infile.eof()!=1){ infile>>plain[i]; i++; if(i==8){ plain[9]='\0'; des_ecb_encrypt(plain,encreption,&skey); for(intj=0;j<8;j++) outfile<<encreption[j]; //outfile<<'\0'; i=0; } } for(;i<9;i++) plain[i]=''; plain[9]='\0'; des_ecb_encrypt(plain,encreption,&skey); for(intj=0;j<8;j++) outfile<<encreption[j]; //outfile<<'\0'; infile.close(); outfile.close();//解密 ifstreaminfile1("encreption.txt",ios::in); if(infile1==0){ cout<<"出错啦!!"<<endl; exit(1); } ofstreamoutfile1("encreption1.txt",ios::out); if(outfile1==0){ cout<<"错啦!"<<endl; exit(1); } while(infile1.eof()!=1){ infile1>>plain[i]; i++; if(i==8){ plain[9]='\0'; des_ecb_encrypt(plain,encreption,&skey); for(intj=0;j<8;j++) outfile1<<encreption[j]; //outfile1<<'\0'; i=0; } } for(;i<9;i++) plain[i]=''; plain[9]='\0'; des_ecb_encrypt(plain,encreption,&skey); for(j=0;j<8;j++) outfile1<<encreption[j]; //outfile1<<'\0'; infile1.close(); outfile1.close(); //cout<<"ASDF"; system("PAUSE");return0;}程序执行结果:例如plaintext.txt存放的明文为:加密后的密文为:解密后的明文为:〔2〕使用附录提供的程序对输入的十六进制数加密〔把输入的字符转化成整数。例如,输入两个字符1F,转化成二进制数000lllll〕,比拟输入和输出。当把输入的数改变一个位时〔如把1F变为1E〕,比拟输出的变化,并说明原因。程序:inttransfer(intoriginal){ if(original>=48&&original<=57) return(original-48); if(original>=65&&original<=70) return(original-55); if(original>=97&&original<=102) return(original-87); cout<<"出错啦"<<endl; return0;}intmain(intargc,char*argv[]){unsignedcharpt[9]="7653211",ct[9]="qwertyu",key[8]={'a','b','c','d','a','b','c','d'}; symmetric_keyskey; intfirst,second; boolagain=true; while(again){ cout<<"请输入两个十六进制数:"<<endl; first=getchar(); first=transfer(first); second=getchar(); second=transfer(second); cin.clear(); pt[0]=first/8+48; first=first%8; pt[1]=first/4+48; first=first%4; pt[2]=first/2+48; first=first%2; pt[3]=first+48; pt[4]=second/8+48; second=second%8; pt[5]=second/4+48; second=second%4; pt[6]=second/2+48; second=second%2; pt[7]=second+48; pt[8]='\0'; ct[8]='\0'; des_setup(key,8,0,&skey); des_ecb_encrypt(pt,ct,&skey); printf("%s\n",pt); printf("%s\n",ct); cin.ignore(numeric_limits<streamsize>::max(),'\n'); cout<<"还想继续吗?是的话按任何键继续,否那么输入N,结束"<<endl; chara; a=getchar(); //cout<<a; cin.clear(); if(a=='n'||a=='N') again=false; cin.ignore(numeric_limits<streamsize>::max(),'\n'); } system("PAUSE");return0;}程序输出结果如下列图所示:可以发现就算是只相差一个位,但是他们的密文完全没有规律可循,这就保证了数据加密的可靠性,至于这样的原因DE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘肃省陇南市文县三校联考2024~2025学年 高三下册三月联考数学试卷附解析
- 新外研版英语7年级上册全册教学课件
- 黑色金属冶炼市场趋势分析-洞察阐释
- 2024年昭通市消防救援支队招录政府专职消防员真题
- 2024年和田地区大学生乡村医生专项计划招聘真题
- 成都天府新区顾连禾泰康复医院招聘笔试真题2024
- 2024年广西英华国际职业学院辅导员考试真题
- 历史地理角色设计师基础知识点归纳
- 2025年二级建造师理论试题
- 参数化贝叶斯推断在生物学和医学中的应用-洞察阐释
- 2025年通信工程与技术考试试卷及答案
- 2024-2025学年下学期初中道德与法治七年级期末复习试卷(含答案)
- 2025年中国1,2-环氧丁烷行业市场规模调研及投资前景研究分析报告
- 2025年江苏南通市通州区八年级生物二模试卷
- 【变电站高压断路器和隔离开关的选择计算过程案例】2100字
- 2025年行政职业能力测验试卷及答案
- 道观庙宇托管协议书
- 2025年中国天然云母市场调查研究报告
- 2024北京朝阳区六年级毕业考英语试题及答案
- 关爱眼健康远离近视眼科普呵护眼睛让视界更精彩课件
- 【课件】跨学科实践:探索厨房中的物态变化问题(教学课件)初中物理人教版(2024)八年级上册
评论
0/150
提交评论