資源描述:
《凱撒加密解密》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、計(jì)算機(jī)安全基礎(chǔ)上機(jī)實(shí)驗(yàn)報(bào)告學(xué)院年級(jí)專業(yè)班學(xué)生姓名學(xué)生學(xué)號(hào)實(shí)驗(yàn)一凱撒加密解密凱撒密碼簡(jiǎn)介:愷撒密碼的替換方法是通過排列明文和密文字母表,密文字母表示通過將明文字母表向左或向右移動(dòng)一個(gè)固定數(shù)目的位置。例如,當(dāng)偏移量是左移3的時(shí)候(解密時(shí)的密鑰就是3):明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC使用時(shí),加密者查找明文字母表中需要加密的消息中的每一個(gè)字母所在位置,并且寫下密文字母表中對(duì)應(yīng)的字母。需要解密的人則根據(jù)事先已知的密鑰反過來操作,得到原來的明文。例如:明文:THEQUICKBROWNFOXJUMPSOVE
2、RTHELAZYDOG密文:WKHTXLFNEURZQIRAMXPSVRYHUWKHODCBGRJ源代碼:#include"kaisa.h"usingnamespacestd;voidKaisa::setI(){cout<<"請(qǐng)輸入加密密碼:";cin>>i;}voidKaisa::jiami(){chara,b,c;cout<<"請(qǐng)輸入明文: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<<"請(qǐng)輸入密文: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的技術(shù),其中將加密的文本塊分成兩半。使用子密鑰對(duì)其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進(jìn)行“異或”運(yùn)算;接著交換這兩半,這一過程會(huì)繼續(xù)下去,但最后一個(gè)循環(huán)不交換。DES使用16個(gè)循環(huán),使用異或,置換,代換,移位操作四種基本運(yùn)算。源代碼:#include#include#include"des_encode.h"intkey[16][48];charstr[8];voidmain(){EncodeMain();}voidEncodeMain(){inti;charkeychar[8];intkey2[8];intstrkey[8];printf
15、("請(qǐng)輸入8個(gè)要加密的字符:");for(i=0;i<8;i++)scanf("%c",&str[i]);getchar();for(i=0;i<8;i++)strkey[i]=str[i];printf("輸入明文的十六進(jìn)制為:");for(i=0;i<8;i++)printf("%10x",strkey[i]);printf("請(qǐng)輸入密鑰(8個(gè)字符):");for(i=0;i<8;i++)scan