2015年南阳理工学院软件学院网络安全编程课程设计….doc

2015年南阳理工学院软件学院网络安全编程课程设计….doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本文仅限参考,如有抄袭,复制,切JJ一枚 本文使用繁体编写,如有需要请使用wps文档繁体转换成简体阅读。 《網路安全編程》 姓名:秦密 班級:12級網安一班 學號:1215135068 一、設計任務與要求 設計任務 使用檔輸入流從指定路徑和名稱的磁片中讀取指定的txt文本,對文本內容加密後重新輸出到原文件中。 設計要求 能夠實現對txt文本的加密與解密操作,加密後的文本不應具有可讀性,解密後的文本以保持原有的大小、格式,不應有文本行或字元、字串的丟失。 二、實現思想: 1.使用檔輸入輸出流: iofstream從指定路徑的txt檔中讀取數據,使用檔輸入流的getline函數從原文件每次讀取一行作為一個字串寫入字串緩存空間szTmp中。 加密操作: 對緩存字串szTmp使用自定義的加密函數AL_Lock進行加密操作,將加密後的字串寫入一個臨時檔txtLocker.tmp中保存,待整個文本檔讀取並加密完成後,將加密後的檔從臨時檔txtLocker中逐個字元複製回原文件中,並對將緩存檔清空。 解密操作: 使用檔輸入輸出流逐行讀取加密後的檔,到字串緩存空間szTmp中,對字串szTmp 使用自定義的解密函數LA_Key進行解密操作,直到檔解密完成;解密操作完成後,將解密後的檔寫回原文件中。 4. 加密函數AL_Lock的實現思想: AL_Lock包含兩個自定義的加密函數Line_Lock和Aph_Lock 。 對字串進行加密時,有兩種基本的加密思想。 其一是對字串中的各個字元按照一個給定的順序進行換序加密操作。如:字串”abcdef”字元序列”326154”加密後為”cbfaed”。此程式中自定義的加密函數Line_Lock就是用於實現此功能。 另一種加密思想是對字元序列進行邏輯移位加密,加密數值增加到字元的ASCII碼值中。如字元序列”abcde”按字元序列”11211”進行邏輯移位加密後字串為”bceef”。 此程式中自定義的加密函數Aph_Lock就是用於實現此功能。 AL_Lock加密函數為這兩種加密思想結合使用構建的加密函數,先使用邏輯移位加密函數Aph_Lock進行加密,在使用換序加密函數Line_Lock對其進行加密。 5. 解密函數LA_Key的實現思想: 解密函數為加密函數的逆過程,先使用解密函數Line_Key對加密後的字串進行原來順序的恢復操作,再使用邏輯移位解密函數Aph_Key對恢復原序的字串進行邏輯解密操作。 6. 加密解密序列的生成,給定任意一個字串序列如:”7415369”按字元由小到大的順序逐個字元給定其對應位置產生字串序列”3524617”該序列即為換序加密時可用的加密序列使用Line_Lock即可對字元加密。在此程式中用於生成加密序列的函數為getNum。 而產生的加密序列經字串數據轉換函數char2int轉換後轉換為整型數據,利用除3取得的餘數作為邏輯移位的產生序列。 三: 加密實現過程 新建檔123.txt 運行加密程式 查看加密後的檔 解密檔 四:程式源碼 #include stdafx.h #includestdio.h #includefstream #includeiostream using namespace std; //檔輸入輸出流 #define ANum1 3000 #define ANum2 3500 // strLen 求字串求長函數 求任意長度字串的長度 int strLen(char str[]) { int i = 0; while(str[i++]); return i; } //char2int 轉換, 將字串數str,轉換為整型數,如:“123457”-123457 int char2int(char str[]) { int Total = 0, i=0; int Tmp; while(str[i]) { Tmp = str[i++]-48; //Tmp用於存儲字串各個位元組處轉換後的的數字s[i]-48,轉換前該位元組處用s[i]表示該數字字元 Total = Total * 10 +Tmp; //將各位數字字合成字元所表示的數據 } return Total; //返回數字處理後得到的數字 } //strCopy 字串拷貝函數,將字串從原始檔案str1拷貝到目標檔str2,返回值str2所對應的字串 char * strCop

文档评论(0)

x5511167 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档