




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、XXXX大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院匯編語言程序設(shè)計課程設(shè)計實驗報告題目: 文件的加密和解密 專業(yè): 計算機(jī)科學(xué)與技術(shù) 班級: XXXX 學(xué)號: XXXXXXXXX_ 姓名: _ XXX _ 成績: 指導(dǎo)教師: XXXXX 完成日期: 2013年 9 月 26 日一、題目需求題目要求文檔只給出了文件的加密解密要求,即最基本的要求為實現(xiàn)文件的加密解密,而且也沒有限制文件的加密解密方式,也沒有限制對哪些種類的文件進(jìn)行加密解密(理論上應(yīng)該是對任意文件都可進(jìn)行),自由度可謂相當(dāng)?shù)母?。既然沒有限定加密解密的方式,那么我認(rèn)為還是采用簡單一點(diǎn)的加密解密方式較好,這樣一來程序就變得容易編寫而且也能提高效率。當(dāng)然在
2、社會使用環(huán)境中的話當(dāng)然是使用較難破解的復(fù)雜解密方式了。不管使用哪種加密解密方式都必須滿足的基本要求是:加密前的文件和解密后的文件應(yīng)當(dāng)是完全一樣的。這就是這次任務(wù)的基本目標(biāo)。二、系統(tǒng)設(shè)計1、 概要設(shè)計根據(jù)題目要求可知該次設(shè)計應(yīng)該包含以下內(nèi)容:從磁盤獲取加密解密信息以及文件路徑名并保存。加密解密過程中需打開文件,所以要通過系統(tǒng)調(diào)用打開需處理的文件。打開文件后,讀取其內(nèi)容,對文件進(jìn)行加密操作。加密之后,寫入源文件,并保存。進(jìn)行解密操作時,同樣先打開需處理的文件。讀出文件內(nèi)容,進(jìn)行解密操作。解密操作完成后,寫入源文件中,并關(guān)閉源文件。2、詳細(xì)設(shè)計首先確定加密解密所使用的算法,這里我采用的是異或加密算法
3、。異或運(yùn)算為二元邏輯運(yùn)算,運(yùn)算規(guī)則為:參加運(yùn)算的兩位相同時結(jié)果為0,相異時結(jié)果為1。異或運(yùn)算的特點(diǎn):某邏輯變量與0異或時其值不變,與1異或時其值取反。若一字符字節(jié)與全1字節(jié)(FFH)異或,各位同時變反,原字符信息不可讀出,可達(dá)到加密的目的。解密也是同樣的道理,只需重復(fù)上述操作,該字節(jié)將恢復(fù)原值,即可達(dá)到解密的目的。所以同一程序既可以實現(xiàn)加密也可實現(xiàn)解密。開始該程序的總流程圖如下:鍵入待處理文件名Y文件內(nèi)容讀入緩沖區(qū)文件打開成功?N異或運(yùn)算循環(huán)處理緩沖區(qū)中的字節(jié)提示錯誤文件指針移動回文件頭寫文件關(guān)閉文件結(jié)束程序中為讀入的文本設(shè)置一個緩沖區(qū),當(dāng)緩沖區(qū)大于文件長度時,文件讀入功能能自動獲取讀入文本的
4、長度,當(dāng)緩沖區(qū)小于文件長度時,文件讀入功能將給出緩沖區(qū)滿錯誤提示信息。實現(xiàn)該功能部分代碼如下:MOV AX,3D02HINT 21HJC OPERRMOV TOP,AXMOV BX,AXMOV CX,2000LEA DX,BUFMOV AH,3FHINT 21HJC REARRMOV LEN,AXMOV CX,AXDEC CXLEA BX,BUF文件內(nèi)容讀入緩沖區(qū)中成功后,就開始用異或運(yùn)算循環(huán)處理緩沖區(qū)中的字節(jié),實現(xiàn)該功能部分代碼如下:LOP:XOR BYTE PTRBX,0FFHINC BXLOOP LOP待字節(jié)全部被處理完成后,將文件指針重新移動回文件頭,然后開始重新寫文件。文件重寫完畢后
5、關(guān)閉文件,程序結(jié)束。重寫文件部分代碼如下:MOV AX,4200HMOV BX,TOPMOV CX,0MOV DX,0INT 21HJC MVPRRMOV BX,TOPMOV CX,LENMOV AH,40HLEA DX,BUFINT 21H三、軟件測試 使用說明: 在DOS環(huán)境下執(zhí)行可執(zhí)行文件CRYPT.EXE然后系統(tǒng)會提示輸入文件名(不要忘了后綴),需要進(jìn)行加密解密的文件路徑請保持與CRYPT.EXE所在的路徑一致.下面以一個txt文件為例開始測試。解壓前的txt文件內(nèi)容:運(yùn)行加密解密程序過程:加密后的txt文件:然后對該txt文件進(jìn)行解密:解密后的文件如下:可見與原來的txt文件是一模一
6、樣的。若輸入了不存在或者錯誤的文件名,則會出現(xiàn)下面的報錯情況:四、特點(diǎn)與不足1、技術(shù)特點(diǎn)簡潔明了是本程序的最大特點(diǎn)。加密和解密都是使用異或算法,其操作過程完全一樣,更能夠保證加密算法的正確性。對文件的加密按照每一個二進(jìn)制字節(jié)逐一加密,對漢字等非ASCII碼字符的編碼保密性得到了很好的保證。在出現(xiàn)非法操作時系統(tǒng)也會給出錯誤提示。2、不足之處對于加密解密的算法的設(shè)計比較簡單,不具有深度。本程序采用的是對文件的每個字節(jié)進(jìn)行異或運(yùn)算以達(dá)到加密解密。這種方法加密解密速度快,而且其正確性也能夠得到證明,但是安全性能不高,從數(shù)學(xué)角度上,很容易被破譯。對于較高級的加密解密方式,雖然保密性能會比這種簡單的異或運(yùn)
7、算好很多,但是由于本人學(xué)習(xí)匯編時間不長,能力有限,實在難以實現(xiàn) 。五、實驗體會 六、源程序清單DATASEGMENTUSE16FNAMEDB 50DB ?DB 50 DUP(?)TOPDW ?LENDW ?BUFDB 2000 DUP(?)SUCCDB0DH,0AH,'encrypt or decrypt successfully!',0DH,0AH,'$'OPERDB 0DH,0AH,'open error!',0DH,0AH,'$'WRIRDB 0DH,0AH,'write error!',0DH,0AH,
8、39;$'MVPRDB 0DH,0AH,'move error!',0DH,0AH,'$'REARDB 0DH,0AH,'read error!',0DH,0AH,'$'STRDB 'Welcome!',0DH,0AH,'$'INPUTDB 'Please input the files to encrypt or decrypt:$'DATAENDSSTACKSEGMENTUSE16STACKDW 200H DUP(?)STACKENDSCODESEGMENTUSE16AS
9、SUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AH,9MOV DX,OFFSET STRINT 21HLEA DX,INPUTMOV AH,9;提示輸入文件名INT 21HLEA DX,FNAMEMOV AH,0AH;鍵盤輸入文件名INT 21HMOV AL,FNAME+1MOV AH,0MOV BX,AXMOV BX+FNAME+2,0LEA DX,FNAME+2MOV AX,3D02H;打開文件INT 21HJC OPERRMOV TOP,AX;保存文件代號MOV BX,AXMOV CX,2000LEA DX,BUFM
10、OV AH,3FHINT 21HJC REARRMOV LEN,AX;保存讀入字節(jié)數(shù)MOV CX,AX;傳送讀入字節(jié)數(shù)DEC CXLEA BX,BUFLOP:XOR BYTE PTRBX,0FFH;對緩沖區(qū)內(nèi)的字節(jié)進(jìn)行處理INC BXLOOP LOPMOV AX,4200H;移動文件指針到文件頭MOV BX,TOPMOV CX,0MOV DX,0INT 21HJC MVPRRMOV BX,TOPMOV CX,LENMOV AH,40H;寫文件LEA DX,BUFINT 21HJC ERIRRMOV BX,TOPMOV AH,3EH;關(guān)閉文件INT 21HLEA DX,SUCCMOV AH,9INT 21HEXIT:MOV AH,4CHINT 21HOPERR:LEA DX,OPERMOV AH,9;顯示錯誤信息INT 21HJMP EXITERIRR:LEA DX,WRIRMOV AH,9;顯示錯誤信息INT 21HJMP EXITREARR:LEA DX,REARMOV AH,9;顯示錯誤信息INT 21HJMP EXITMVPRR:LEA DX,MVPRMOV AH,9;顯示錯誤信息INT 21HJMP EXITCRLFPROCMOV DL,0AHINT
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年汽車美容師學(xué)科知識考查試題及答案
- 2024年不確定性與變量選擇試題及答案
- 家庭寵物營養(yǎng)實施方案試題及答案
- 六年級語文特色試題及答案
- 汽車美容師工作流程解析試題及答案
- 2024年汽車維修工車輛出廠檢驗試題及答案
- 2024年統(tǒng)計學(xué)實例解析試題及答案
- 2024年小學(xué)語文課本知識點(diǎn)
- 2024年食品質(zhì)檢員考試注意事項試題及答案
- 食品衛(wèi)生標(biāo)準(zhǔn)實施的難點(diǎn)試題及答案
- 2025-2030中國面巾紙行業(yè)運(yùn)營模式與競爭格局分析研究報告
- 2025年各地低空經(jīng)濟(jì)政策匯編
- 2025年共青團(tuán)入團(tuán)考試測試題庫及答案
- 2021年同等學(xué)力申碩《臨床醫(yī)學(xué)》試題真題及答案
- CNAS-EC-027-2010 信息安全管理體系認(rèn)證機(jī)構(gòu)認(rèn)可說明
- 小學(xué)科學(xué)實驗教學(xué)與現(xiàn)代教育技術(shù)融合研究
- 2025年興業(yè)銀行股份有限公司招聘筆試參考題庫含答案解析
- 2025屆華能安陽熱電限責(zé)任公司畢業(yè)生招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 完整版醫(yī)院CT機(jī)房裝飾改造工程施工組織設(shè)計方案
- gis在城鄉(xiāng)規(guī)劃中的應(yīng)用
- 《小兒垂釣》ppt
評論
0/150
提交評論