freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于java的文件加密解密(編輯修改稿)

2025-06-10 20:27 本頁面
 

【文章內(nèi)容簡介】 監(jiān)聽器模式。將一個監(jiān)聽器 (listener)與特定的控件 (如按鈕等 )綁 定起來,當(dāng)發(fā)生用戶點擊等事件 (Event)時,調(diào)用監(jiān)聽器的處理方法,從而響應(yīng)用戶的動作。 通信 112 班, 基于 java 的文件加密解密設(shè)計 9 加密操作模塊 加密模塊用于對指定的文件進(jìn)行加密,是整個設(shè)計兩個核心模塊之一。本次設(shè)計的加密模塊是通過改變文件的讀取方式來使加密后的文件無法打開,并且改變原文件的擴展名,使除了指定用戶外的其他用戶無法找到相應(yīng)的破解軟件來打開加密文件。 加密設(shè)計過程 首先確定加密時所用的算法,并按算法編寫加密段程序,然后再編寫讀取要加密文件的程序,最后編程為加密后的文件指定一個新的存儲路徑。將上述三段程序用 Java 語 言連在一起,并且為了使操作更加完善加入加密后將原文件刪除的指令,選擇加密文件的窗口如圖 34 所示。 圖 34 選擇加密文件 加密后的文件被保存到指定的存儲硬盤里,并且擴展名改變,如圖 35 所示。打開后內(nèi)容亂碼,如圖 36 所示。 圖 35 文件被保存到 E 盤里并且擴展 通信 112 班, 基于 java 的文件加密解密設(shè)計 10 圖 36 加密后內(nèi)容亂碼 實現(xiàn)所用關(guān)鍵代碼簡述 以下是用來改變被加密文件擴展名時所用的程序: String s1 = ()。 String s = ()。 String name = (0,(.))。 File srcFile = new File(s1)。 File dstFile = new File( FileInputStream cfis = new FileInputStream(srcFile)。 FileOutputStream cfos = new FileOutputStream(dstFile)。 byte[] info = new byte[4]。 String prefix = ((.)+1)。//pdf byte[] fixbox = ()。 此程序可以用來獲取被加密文件的存儲路徑,并且將原文件的后綴保存起來,用自己設(shè)定的后綴來代替,達(dá)到改變擴展名的效果。 以下是用來實現(xiàn)加密后文件打開后內(nèi)容亂碼的程序: (fixbox, 0, info, 0, )。 (info)。 byte[] b1 = new byte[1024]。 int i1 = (b1)。 while(i1 != 1){ byte cb = b1[0]。 b1[0] = b1[1]。 b1[1] = cb。 通信 112 班, 基于 java 的文件加密解密設(shè)計 11 (b1,0,i1)。 i1 = (b1)。 此程序通過將字符互換實現(xiàn)文件打開后內(nèi)容亂碼,此程序就是本次設(shè)計所用的算法,根據(jù)它實現(xiàn)的原理可以成此法為“ ab 互換法”,這種加密算法最大的優(yōu)點是實現(xiàn)較容易,適合對容量較大的文件進(jìn)行加密。 解密操作模塊 解密模塊是根據(jù)加密模塊而設(shè)計的,實現(xiàn)對文件的解密操作,是本次設(shè)計的又一核心模塊。本次設(shè)計的解密操作是加密操作的反操作,即它是將加密后的文件的讀取方式換回原來的讀取方式,并且將原文件的擴展名還原,以便使 指定的用戶對文件進(jìn)行正常讀取,讀取被加密文件的窗口如圖 37 所示。 圖 37 讀取被加密文件 被加密文件經(jīng)解密后,擴展名還原,如圖 38 所示。能正常讀取,如圖 39所示。 圖 38 解密后擴展名還原 通信 112 班, 基于 java 的文件加密解密設(shè)計 12 圖 39 解密后文件正常讀取 解密設(shè)計過程 首先根據(jù)加密時所用的算法,編寫與該算法計算過程相反的解密程序,然后再編寫讀取被加密文件的程序,并編寫程序為解碼文件指定一個存儲路徑。最后將上述三段程序用 JAVA 語言連在一起,并且為了使操作更加完善加入解密后加密文件刪除的指令。這樣就可以實現(xiàn)原文 件的還原了。 實現(xiàn)所用關(guān)鍵代碼簡述 以下是實現(xiàn)還原擴展名的程序: String name = ()。 String lastName = (0,(.))。 File mbFile = new File( FileInputStream dfis = new FileInputStream(file)。 byte[] info = new byte[4]。 (info)。 StringBuffer sb = new StringBuffer()。 for (byte value : info){ if (value == 0){ break。} ((char)value)。} File dstFile = new File( 我們可以看出次段程序的過程恰跟加密過程相反,即先讀取的是加密后文件的擴展名,在用原文件的擴展名將其替換。 通信 112 班, 基于 java 的文件加密解密設(shè)計 13 以下是實現(xiàn)將原文件內(nèi)容還原的程序段: FileOutputStream dfos = new FileOutputStream(dstFile)。 byte[] b1 = new byte[1024]。 int i1 = (b1)。 while(i1 != 1){ byte cb = b1[0]。 b1[0] = b1[1]。 b1[1] = cb。 (b1,0,i1)。 i1 = (b1)。 解密過程再次采用“ ab 互換法”將加密時互換的兩個因素?fù)Q回原來的位置,這樣就實現(xiàn)了文件的還原。 通信 112 班, 基于 java 的文件加密解密設(shè)計 14 第 4 章 運行調(diào)試 加密模塊 本程序采用簡單的加密算法,即把從文本區(qū)獲得的文本文件,初始化,存放到一個數(shù)組中,然后進(jìn)行“ ab 互換”運算,把結(jié)果重新存放于該數(shù)組中,從而顯現(xiàn)在“文件瀏覽窗口”中。代碼實現(xiàn): public class Jia { public static void main(String[] args) { public void JiaMi(File file){ try {FileInputStream fis = new FileInputStream(new File( byte[] b = new byte[1024]。int i = (b)。String s =null。 if(i0){s = new String(b,0,i)。} String s1 = ()。 String s = ()。 (s)。 String name = (0,(.))。 (name)。File srcFile = new File(s1)。 File dstFile = new File( FileInputStream cfis = new FileInputStream(srcFile)。 FileOutputStream cfos = new FileOutputStream(dstFile)。 byte[] info = new byte[4]。 String prefix = ((.)+1)。//pdf byte[] fixbox = ()。//數(shù)組復(fù)制 (fixbox, 0, info, 0, )。 (info)。byte[] b1 = new byte[1024]。int i1 = (b1)。 while(i1 != 1){byte cb = b1[0]。b1[0] = b1[1]。b1[1] = cb。 (b1,0,i1)。i1 = (b1)。} ()。()。()。()。} catch (IOException e) {()。}} 通信 112 班, 基于 java 的文件加密解密設(shè)計 15 解密模塊 解密操作其實同加密操作相同,依舊首先打開加密后的文件 ,使其顯示在文本區(qū)中,再同樣對數(shù)組里的元素進(jìn)行初始化,進(jìn)行“ ab 互換”運算,即可得到解密后的文件,再顯示到“文件瀏覽窗口”中。代碼實現(xiàn): public class Jie { public void Jiemi(File file){ try {String name = ()。 String lastName = (0,(.))。 File mbFile = new File( FileInputStream dfis = new FileInputStream(file)。 byte[] info = new byte[4]。 (info)。 StringBuffer sb = new StringBuffer()。 for (byte value : info){if (value == 0){break。} ((char)value)。} File dstFile = new File( File dstFile = new File( FileOutputStream dfos = new FileOutputStream(dstFile)。 byte[] b1 = new byte[1024]。 int i1 = (b1)。 while(i1 != 1){byte cb = b1[0]。b1[0] = b1[1]。b1[1] = cb。 (b1,0,i1)。 i1 = (b1)。} ()。()。()。()。()。} catch (IOException e) {()。} 通信 112 班, 基于 java 的文件加密解密設(shè)計 16 結(jié)論 在設(shè)計過程中,我們必須持著嚴(yán)謹(jǐn)認(rèn)真的態(tài)度和作風(fēng)。每一個細(xì)節(jié)都需要高度重視,如果不認(rèn)真思考 決策,就會出現(xiàn)或大或小的錯誤。若早期的錯誤隱藏下來沒被發(fā)現(xiàn),就會對后面的工作產(chǎn)生很大的影響,甚至需要從頭開始。 在設(shè)計過程中,我們不斷發(fā)現(xiàn)錯誤,不斷改正錯誤,不斷領(lǐng)悟,不斷獲取從中,我懂得了在今后社會的發(fā)展和學(xué)習(xí)實踐過程中,一定要不懈努力,不能遇到題就想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問題所在,然后一一進(jìn)行解決,只有這樣,才獲得最終的勝利。不然,將永遠(yuǎn)不能獲得成功,也不能得到社會及他人對自己的認(rèn)可!課程設(shè)計誠然是一門專業(yè)課,讓我的專業(yè)知識以及專業(yè)技能上得到提升,同時又是一門道課,一門辯思課,給了我許多道、很多 思,給了我莫大的空間。我認(rèn)為,在此次實踐中不僅培養(yǎng)了獨立思考、動手操作的能力,在各種其它能力上也都有了提高。更重要的是我們學(xué)會了很多學(xué)習(xí)的方法。而這正是以后最實用的知識。要面對社會的挑戰(zhàn) , 只有不斷的學(xué)習(xí)、實踐,再學(xué)習(xí)、再實踐。我想,以后不管有多苦,我們都要會變苦為樂,從中尋找樂趣。 通過此次的課程設(shè)計,我明白了思路即出路,有什么不懂不明白的地方要及時請教或上網(wǎng)查詢,只要肯花時間去認(rèn)真鉆研,動腦思考,動手實踐,就沒有弄不懂的知識 。 通信 112 班, 基于 java 的文件加密解密設(shè)計 17 參考文獻(xiàn) [1] 川劉劫 . Java 反編譯技術(shù)和代碼安全 [J] 現(xiàn)代電子技術(shù), 2021,27(10): 2224. [2] 冀振燕 . Java 編譯程序技術(shù)與 Java 性能 [J]. 軟件學(xué)報, 2021, 11 (2):173175. [3] Wu Yang. Advanced Obfuscation Techniques for Java Bytecod[J] Joumal of Systems and Software Volume, 2021, 71 (1): 13 [4] Berghei H. Wartermarking Cyberspace[J]. Communications of the ACM, 1997, 40(11): 1921
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1