



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、/單置換密碼的編程實(shí)現(xiàn)(c+)/作者信息: / /本程序使用方法:需要在本程序所在的文件夾創(chuàng)建一個(gè)"密碼學(xué).txt"文檔,/該程序所需要的數(shù)據(jù)全部由該文檔提供,然后運(yùn)行即可得到結(jié)果,如需要修改數(shù)據(jù),必須從文檔中人工修改/文檔格式的要求:文檔總共包含兩行。第一行由一個(gè)1或2的數(shù)字和一個(gè)字符串組成,數(shù)字1代表加密,2代表解密,字符串表示密鑰/第二行僅包含一個(gè)字符串,這個(gè)字符串是需要加密或解密的內(nèi)容。/該程序運(yùn)行結(jié)果直接由控制臺輸出運(yùn)行結(jié)果:#include<iostream>#include<string>#include<fstream>u
2、sing namespace std;ifstream in("密碼學(xué).txt");void jiami(char zhihuan); /加密函數(shù)void jiemi(char zhihuan); /解密函數(shù)void setzhihuan(char zhihuan,char fanzhihuanbiao); /設(shè)置置換表函數(shù)int main()int m; /確定是加密或解密?加密為1,解密為2char zhihuanbiao'z'+1; /正向置換表,加密時(shí)用char fanzhihuanbiao'z'+1; /反向置換表,解密時(shí)用cout
3、<<"加密按輸入1,解密輸入2"<<endl;in>>m; /讀入msetzhihuan(zhihuanbiao, fanzhihuanbiao); /設(shè)置置換表switch(m) /判斷m值,執(zhí)行相應(yīng)的功能case 1: jiami(zhihuanbiao);break;case 2: jiemi(fanzhihuanbiao);break;default:break;return 0;void jiami(char zhihuan) /加密string mingwen; /保存明文cout<<endl<<&qu
4、ot;請輸入明文:"getline(in,mingwen); /讀入明文cout<<mingwen<<endl; cout<<"加密后的密文為:"<<endl;for(int i=0; i<mingwen.length(); i+) /直接利用置換表輸出密文if(mingweni>='a' && mingweni<='z')cout<<zhihuan mingweni ;else cout<<mingweni;cout<&
5、lt;endl;void jiemi(char fanzhihuan)string miwen; /保存密文cout<<endl<<"請輸入密文:"getline(in,miwen); /讀入密文cout<<miwen<<endl;cout<<"解密后的明文為:"<<endl;for(int i=0; i<miwen.length(); i+) /直接利用反置換表輸出明文if(miweni>='a' && miweni<='z
6、')cout<<fanzhihuan miweni ;else cout<<miweni;cout<<endl;void setzhihuan(char zhihuanbiao,char fanzhihuanbiao)int i; /i和j是循環(huán)變量,除此之外沒有任何意義char j;string s; /密鑰cout<<"請輸入密鑰(大寫):"getline(in,s); /讀入密鑰cout<<s<<endl; /輸出密鑰cout<<"置換表為:"<<
7、;endl;string s1; for(i = 0 ; i < s.length();i+) /對密鑰進(jìn)行處理(去掉空格和重復(fù)的字符)bool sign =0; /標(biāo)志變量if(si >= 'a' && si <='z')for(int j = 0; j < s1.length();j+)if(si = s1j)sign = 1;break;if(sign = 0) s1 = s1 + si;else sign = 0;for( j ='a'j<='z'j+)cout<<
8、j<<" "cout<<endl; /輸出小寫字母 從a到zchar ch='a'for( i = 'a' ;i <= 'z' i+) /該循環(huán)利用密鑰得到置換表if(i < 'a' + s1.length() /前面直接用s1代替 zhihuanbiaoi = s1i-'a' else /后面將剩下的"貼"上去for(int j = 'a' j < 'a' + s1.length(); j+)if(ch = zhihuanbiaoj)ch+;j= 'a' /每次都從頭開始搜索continue;zhihuanbiaoi = ch; ch+;cout<<zhihuanbiaoi<<" " /同時(shí)輸出置換表cout<<endl;for( i='a' i<= 'z' i+) /該循環(huán)利用置換表得到反置換表fanzhihuan
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)品采購協(xié)議細(xì)節(jié)
- 房地產(chǎn)公司涉及的設(shè)計(jì)方面協(xié)議年
- 慢病相關(guān)知識培訓(xùn)課件
- 人力資源招聘與員工離職統(tǒng)計(jì)表
- 河南省駐馬店上蔡縣2024-2025學(xué)年七年級上學(xué)期期末生物學(xué)試題(含答案)
- 產(chǎn)品研發(fā)委托及知識產(chǎn)權(quán)歸屬協(xié)議
- 虛擬現(xiàn)實(shí)內(nèi)容制作服務(wù)合同
- 二手貨車買賣不過戶轉(zhuǎn)讓合同書
- 市場競爭力提升策略
- 三農(nóng)產(chǎn)品加工技術(shù)作業(yè)指導(dǎo)書
- 產(chǎn)科臨床診療指南及操作規(guī)范
- DB32T-網(wǎng)絡(luò)直播營銷管理規(guī)范編制說明
- 高職單招政治試題及答案
- 2024水利工程施工度汛方案編制導(dǎo)則
- 15建設(shè)美麗中國【中職專用】高一思想政治《中國特色社會主義》(高教版2023基礎(chǔ)模塊)
- 人教版(2024)六年級全一冊 第17課 設(shè)計(jì)我的種植園
- 尊師重教講義
- 辦公用品及耗材采購服務(wù)投標(biāo)方案(技術(shù)方案)
- 《十萬個(gè)為什么》整本閱讀指導(dǎo)(導(dǎo)讀)
- 2024年全國職業(yè)院校技能大賽高職組(智能節(jié)水系統(tǒng)設(shè)計(jì)與安裝賽項(xiàng))考試題庫-下(多選、判斷題)
- (212題)2024綜合基礎(chǔ)知識考試題庫及解析
評論
0/150
提交評論