



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、程序設計及應用課程設計2015 2016 學年第三學期院(系)信息工程與自動化學院專業自動化學號201510401308班級自動化 153學生姓名張超設計時間2016 年9月5日指導教師線巖團1. 設計題目:題目 7: 文件加密文件的傳輸會有明文和密文的區別,明文發送是不安全的,用一個程序實現發送文件的加密和解密操作。加密算法,密鑰設計由同學自己選擇現有的加密解密算法或是自己設計。要求:(1)對文件的字符根據加密算法,實現文件加密。(2)對操作給出必要的提示。(3)對存在的 file1.txt 文件,必須先打開,后讀寫 , 最后關閉。加密后的文件放在 file2.txt o(4)解密文件保存在
2、 file3.txt中。2 設計目的:文件的傳輸會有明文和密文的區別,明文發送是不安全的,易遭到黑客攔截。現要求編寫一個程序實 現文本文件的加密和解密操作。3. 要求:(1)用戶可選擇是“加密文件" 還是“解密文件 " 操 作;(2)加密文件:用戶輸入明文文件名(待加密文件,該文件必須在磁盤存在)和密文文件名(加密后目標文件),系統能夠打開明文源文件,每次讀取源文件單個字節(直至讀到文件結束),并與用戶輸入的密鑰通 過異或運算進行加密,加密后存入目標文件中;(3)解密文件:用戶輸入密文文件名(待解密文件,該文件必須在磁盤存在)和明文文件名(解密后目標文件),系統能夠打開密文
3、源文件,每次讀取源文件單個字節(直至讀到文件結束),并與用戶輸入的密鑰通 過異或運算進行解密,解密后存入目標文件中。、設計思路和分析過程/* 采用結構化程序設計思想,把系統的功能劃分為哪幾個模塊,為實現每個功能模塊設計了哪些函數及函數的作用說明 */程序分為三個模塊:主函數菜單模塊、“加密文件”模塊、“解密文件”模塊。“加密文件”模塊對應void fun1()、“解密文件”模塊 對應 fun2 () 。Fun1(實現“加密文件”,根據要加密文件內容與key 異或得到加密文件,并保存的第二個程序中去形成新的加密文件。fun2() 計算“解密文件”,根據要解密文件內容與key 異或得到解密文件,并
4、保存的第二個程序中去形成新的解密后的文件。1、程序流程圖三、程序代碼#in clude<stdio.h> void fun 1()FILE *fp1,*fp2;char key,ch;char file name150,file name250;prin tf(" Please in put orginal file name n:");menu 21: gets(file name1);if(fp 1= fope n(file name1,"rt")=NULL)prin tf("%s ope n Error!",file
5、 name1);gotomenu21;prin tf(" Please in put target file name n:");menu 22: gets(file name2);if(fp2=fope n(file name2,"wt+")=NULL)prin tf("%s ope n Error!",file name2);gotomenu22;prin tf(" Please in put key:");getche(key);prin tf("n");while(ch=fgetc(fp
6、1)!=EOF)ch=ch Akey;fputc(ch,fp2);fclose(fpl);fclose(fp2);prin tf("Decrypti on success! n");void fun 2()FILE *fp1,*fp2;char key,ch;char filename150,filename250;prin tf(" Please in put orginal file name n:");menu 21: gets(file name1);if(fp 1= fope n(file name1,"rt")=NULL)
7、prin tf("%s ope n Error!",file name1);gotomenu21;prin tf(" Please in put target file name n:");menu 22: gets(file name2);if(fp2=fope n(file name2,"wt+")=NULL)prin tf("%s ope n Error!",file name2);gotomenu22;prin tf(" Please in put key:");getche(key);
8、prin tf("n");while(ch=fgetc(fp1)!=EOF)ch=ch Akey;fputc(ch,fp2);fclose(fpl);fclose(fp2);prin tf("Decrypti on success!' n");void fun 3()FILE *fp;char ch,file name50;prin tf("Please en ter the file n ame:");gets(file name);if(fp=fope n(file name,"r")=NULL)pri
9、ntf("Can't open this file!"); exit(O);ch=fgetc(fp);while(ch!=EOF)putchar(ch);ch=fgetc(fp);fclose(fp); mai n()men u:pri ntf("Plase choose a opti on:n");printf("1.Encryption a file.'n");prin tf("2.Decryption a file.'n");printf("3.Open the encryp
10、tion file.n");prin tf("O.Exit the applicatio n.nswitch(getch()case '1':fu n1();break;case '2':fu n2();break;case '3':fu n3();break;case '0':exit(0);goto menu;”);四、程序的調試過程及運行結果最后的 key 無法獲取,使得其加密的后文件,并未加密,而是實現復制功能。發生錯誤的原因:(1)由于把 gets(filenmaen1);輸成了getc(filenm
11、aen 1);(2)由于把 getche(key) 輸成了getch(key);1. 程序目錄:* H:Dcbug二P14$e chDDse a opt 10n:1 Encrypt ion a flie 2? Decryption a f ile.3>Open the encrypt ionile ? B.E>eit the applicat ion-2. 文件加密:H 'H:DebugVftfti>Oexe'4 1 回Plse choose a opt ion:1 Encryption a flie .2.Decryption a file .3 ?Open
12、 the encrypt ion f ile ?0-Exit the application .Please input ordinal filenamen:c : filel.txtFlense input target filennen:c :ile2.t? tPlease input k 底 yt &Dec rypt ion success fPlsse choose a opt ion:1 Encryption a f ile?2ecrsrpt ien a f ile 4ile 3Open the encrj/P ion9w0? EK it the application.3.
13、 文件解密< H:XDebuD-exc'ehaoise a opt ion:1.Encryption a f ile.2.Decryption a file.3 ?0pen the encrypt ion1le?9.Exit the application .Please input orgioal f ilenamen : c: File2 .it KtPlease input target fileoanen:c : Xfile3,txtPlease inputD 若缶 t*ypt ion successf Plase choose a opt ion:1.Encrypt i
14、on a f ile2ion a f1le <3 .Open the encpi/pt ion f ile - B.Eicit the application.4. 打開加密文件 ' -H:8bu 血帥蚩 .exhPlse choose a opt ion:1. Encryption a file.2. Decryption a f ile .3 ?Open the encrypt ion f ile ?B-Exit the application .Please enter the f ile nane:c: f ile 1.txt 區明理工大學是一所好大學1Encrypt io=n a f ile <2 .I>ecFi/pt ion a f lie 醫3 .Open the encrypt ion f ile . H.Exit the application.E 回 iJ'I11Fl*se choose a option :5. 加密解密 text文件2J fileL-tvt -迅事本EiO j亠回!文件舊巒躥亙看耳內 (H)昆明理工大學是一所好丈學J file2.txt -記事本. 回1文件 (
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年現狀供需分析及重點企業投資評估規劃分析研究報告
- 2025-2030年中國塑膠傘件項目投資可行性研究分析報告
- 中國菱形尼龍綢行業市場規模及未來投資方向研究報告
- 2025-2030年中國磺化瀝青乳液項目投資可行性研究分析報告
- 平房租借合同書(3篇)
- 2025年中國廚房家電行業深度分析研究報告
- 產品買賣合同模板(15篇)
- 建設工程委托監理合同與建設工程委托監理合同范本5篇
- 服務器解決方案合作協議合同范本模板5篇
- 農村的土地入股合同5篇
- 湖北省2025屆高三(4月)調研模擬考試英語試題及答案
- 血液制品規范輸注
- 2025-2030中國生物醫藥行業市場深度調研及發展趨勢與投資前景預測研究報告
- 貿易公司員工管理制度
- 專利代理師高頻題庫新版2025
- 肝硬化護理新進展
- 2025年征信業務合規培訓
- 2025年全國國家版圖知識競賽題庫及答案(中小學組)
- 2025項目部與供應商安全生產物資供應合同
- DB15-T 1339-2025 風電場機組布置技術規范
- 統借統還合同協議
評論
0/150
提交評論