欢迎来到天天文库
浏览记录
ID:43449604
大小:1.34 MB
页数:40页
时间:2019-10-02
《凯撒加密解密》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、计算机安全基础上机实验报告学院年级专业班学生姓名学生学号实验一凯撒加密解密凯撒密码简介:恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。例如:明文:THEQUICKBROWNFOXJUMPSOVE
2、RTHELAZYDOG密文:WKHTXLFNEURZQIRAMXPSVRYHUWKHODCBGRJ源代码:#include"kaisa.h"usingnamespacestd;voidKaisa::setI(){cout<<"请输入加密密码:";cin>>i;}voidKaisa::jiami(){chara,b,c;cout<<"请输入明文:t";cin>>a;b=char('z'-i%26);c=char('Z'-i%26);cout<<"密文是:t";while(a!=''){if((a<='z'&&a>='a')
3、
4、(a<='Z'&&a>='A')){if((a
5、<=b&&a>='a')
6、
7、(a<=c&&a>='A'))cout<c&&a<='Z')cout<b&&a<='z')cout<>i;}voidKaisa::jiemi(){chara,b,c;cout<<"请输入密文:t";cin>>a;b=char('a'+i%26);c=c
8、har('A'+i%26);cout<<"明文是:t";while(a!=''){if((a<='z'&&a>='a')
9、
10、(a<='Z'&&a>='A')){if((a<='z'&&a>=b)
11、
12、(a<='Z'&&a>=c))cout<='a'&&a='A'&&a13、"1.加密"<>t;Kaisakaisa;if(t==1){kaisa.setI();kaisa.jiami();cout<<"加密完成"<14、stel的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES使用16个循环,使用异或,置换,代换,移位操作四种基本运算。源代码:#include#include#include"des_encode.h"intkey[16][48];charstr[8];voidmain(){EncodeMain();}voidEncodeMain(){inti;charkeychar[8];intkey2[8];intstrkey[8];printf15、("请输入8个要加密的字符:");for(i=0;i<8;i++)scanf("%c",&str[i]);getchar();for(i=0;i<8;i++)strkey[i]=str[i];printf("输入明文的十六进制为:");for(i=0;i<8;i++)printf("%10x",strkey[i]);printf("请输入密钥(8个字符):");for(i=0;i<8;i++)scan
13、"1.加密"<>t;Kaisakaisa;if(t==1){kaisa.setI();kaisa.jiami();cout<<"加密完成"<14、stel的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES使用16个循环,使用异或,置换,代换,移位操作四种基本运算。源代码:#include#include#include"des_encode.h"intkey[16][48];charstr[8];voidmain(){EncodeMain();}voidEncodeMain(){inti;charkeychar[8];intkey2[8];intstrkey[8];printf15、("请输入8个要加密的字符:");for(i=0;i<8;i++)scanf("%c",&str[i]);getchar();for(i=0;i<8;i++)strkey[i]=str[i];printf("输入明文的十六进制为:");for(i=0;i<8;i++)printf("%10x",strkey[i]);printf("请输入密钥(8个字符):");for(i=0;i<8;i++)scan
14、stel的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES使用16个循环,使用异或,置换,代换,移位操作四种基本运算。源代码:#include#include#include"des_encode.h"intkey[16][48];charstr[8];voidmain(){EncodeMain();}voidEncodeMain(){inti;charkeychar[8];intkey2[8];intstrkey[8];printf
15、("请输入8个要加密的字符:");for(i=0;i<8;i++)scanf("%c",&str[i]);getchar();for(i=0;i<8;i++)strkey[i]=str[i];printf("输入明文的十六进制为:");for(i=0;i<8;i++)printf("%10x",strkey[i]);printf("请输入密钥(8个字符):");for(i=0;i<8;i++)scan
此文档下载收益归作者所有