安全編程實(shí)驗(yàn)報(bào)告_第1頁(yè)
安全編程實(shí)驗(yàn)報(bào)告_第2頁(yè)
安全編程實(shí)驗(yàn)報(bào)告_第3頁(yè)
安全編程實(shí)驗(yàn)報(bào)告_第4頁(yè)
安全編程實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

平安編程技術(shù)實(shí)驗(yàn)報(bào)告學(xué)生姓名學(xué)生學(xué)號(hào)指導(dǎo)教師郭克華專業(yè)班級(jí)信息平安完成日期計(jì)算機(jī)科學(xué)與技術(shù)系信息科學(xué)與工程學(xué)院目錄TOC\o"1-3"\h\z1510實(shí)驗(yàn)一226595一、目的與要求229701二、操作環(huán)境215873三、實(shí)驗(yàn)內(nèi)容218129四、實(shí)驗(yàn)數(shù)據(jù)58772實(shí)驗(yàn)總結(jié)13參考資料14實(shí)驗(yàn)一一、目的與要求1.1實(shí)驗(yàn)?zāi)康恼莆掌桨簿幊碳夹g(shù)的根本思路和方法。利用所學(xué)的根本知識(shí)和技能,解決簡(jiǎn)單的平安編程問(wèn)題。1.2實(shí)驗(yàn)要求利用所學(xué)到的編程知識(shí)和編程技巧,設(shè)計(jì)一個(gè)實(shí)際的應(yīng)用軟件,提高進(jìn)行工程設(shè)計(jì)的根本技能及分析、解決實(shí)際問(wèn)題的能力,為后續(xù)課程和以后的工程實(shí)踐打下良好的根底。1.3實(shí)驗(yàn)內(nèi)容使用某種方法處理一個(gè)視頻或者音頻,使得該視頻或音頻用任何常用播放軟件都無(wú)法播放;自己編寫(xiě)一個(gè)播放軟件,用你的播放軟件可以播放該視頻或音頻;該播放軟件使用次數(shù)為5次,翻開(kāi)5次之后,再也無(wú)法使用。操作環(huán)境使用Eclipse軟件,用java語(yǔ)言編寫(xiě)的程序。實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容的實(shí)現(xiàn)包括以下幾個(gè)局部:界面與播放器的設(shè)置;實(shí)現(xiàn)退出、翻開(kāi)、加密和解密四項(xiàng)功能的具體代碼;實(shí)現(xiàn)軟件使用次數(shù)為五次的功能的具體代碼。界面與播放器的設(shè)置非常簡(jiǎn)單且繁瑣,我采用的是全部設(shè)定成固定值的方法設(shè)置的界面與播放器的方法,最終效果可以參考實(shí)驗(yàn)數(shù)據(jù)局部。播放器的設(shè)置根本都是調(diào)用了JMF的API里本身有的方法,比方://取得player中的播放視頻的組件,并得到視頻窗口的大小//然后把視頻窗口的組件添加到Frame窗口中,if((visual=player.getVisualComponent())!=null){Dimensionsize=visual.getPreferredSize();videoWidth=size.width;videoHeight=size.height;visual.setBounds(0,0,videoWidth,videoHeight);this.add(visual);}else{videoWidth=320;}//取得player中的視頻播放控制條組件,并把該組件添加到Frame窗口中if((control=player.getControlPanelComponent())!=null){controlHeight=control.getPreferredSize().height;control.setBounds(0,videoHeight,videoWidth,controlHeight+insetHeight);this.add(control);}//設(shè)定Frame窗口的大小,使得滿足視頻文件的默認(rèn)大小this.setSize(videoWidth+insetWidth,videoHeight+controlHeight+insetHeight);this.validate();//啟動(dòng)視頻播放組件開(kāi)始播放player.start();}elseif(ceinstanceofEndOfMediaEvent){//當(dāng)播放視頻完成后,把時(shí)間進(jìn)度條恢復(fù)到開(kāi)始,并再次重新開(kāi)始播放player.setMediaTime(newTime(0));player.start();退出、翻開(kāi)和選擇三項(xiàng)功能也是直接調(diào)用已有的方法完成。加密和解密采用的是取反的方法,考慮到可逆性。還可以改成加一減一的方法,更高級(jí)的可以考慮參加密碼算法進(jìn)行加密,更加平安。加解密的時(shí)候都會(huì)建立新的文件存放數(shù)據(jù),加解密過(guò)程完成后新的文件都會(huì)被刪除。加解密都是讀寫(xiě)文件的過(guò)程所以比擬慢,現(xiàn)在考慮到的優(yōu)化方法是解密到一半的時(shí)候直接開(kāi)始播放,同時(shí)后臺(tái)繼續(xù)解密后面的文件,可以提高效率,增加可用性。解密的實(shí)現(xiàn)如下〔翻開(kāi)時(shí)也要解密〕:inttempbyte;inti=0;while((tempbyte=in.read())!=-1){if(i==0){if(tempbyte==5){jl.setText("無(wú)法翻開(kāi)");on.close();on2.close();file1.delete();file2.delete();return;}on2.write(~tempbyte);i++;continue;}elseif(i<3){on.write(~tempbyte);on2.write(tempbyte);i++;continue;}else{on.write(tempbyte);on2.write(tempbyte);i++;continue;}加密的實(shí)現(xiàn)如下:in=newFileInputStream(file);on=newFileOutputStream(new_file,true);inttempbyte;inti=0;on.write(0);while((tempbyte=in.read())!=-1){if(i<2){on.write(~tempbyte);i++;continue; }else{on.write(tempbyte);i++;continue; }限制軟件翻開(kāi)五次的功能是用文件實(shí)現(xiàn)的,在主函數(shù)里創(chuàng)立一個(gè)文件并且寫(xiě)入初始值5,之后每一次進(jìn)行翻開(kāi)操作都將文件里的數(shù)進(jìn)行減一的操作。當(dāng)文件里數(shù)的值為零時(shí),再次翻開(kāi),程序會(huì)直接退出并且在控制臺(tái)上打印“超過(guò)使用次數(shù)!〞信息。Filefile=newFile("C:\\Users\\a\\Desktop","count.txt");if(!file.exists()){file.createNewFile(); Strings="5"; FileWriterfw=newFileWriter("C:/Users/a/Desktop/count.txt"); BufferedWriterbw=newBufferedWriter(fw);bw.write(s,0,s.length());bw.flush();bw.close();}Filemyfile=newFile("C:/Users/a/Desktop/count.txt");BufferedReaderbr;try{br=newBufferedReader(newFileReader(myfile)); Stringtemp=br.readLine();intcount=Integer.parseInt(temp);if(count>0){count-=1; Stringa=String.valueOf(count); FileWriterfw=newFileWriter("C:/Users/a/Desktop/count.txt"); BufferedWriterbw=newBufferedWriter(fw);bw.write(a,0,a.length());bw.flush();bw.close(); }else{ System.out.println("超過(guò)使用次數(shù)!"); System.exit(0); }}catch(FileNotFoundExceptione3){e3.printStackTrace();}catch(IOExceptione1){e1.printStackTrace();}四、實(shí)驗(yàn)數(shù)據(jù)首先,在未經(jīng)任何處理的情況下,實(shí)驗(yàn)所用到的本avi格式視頻是可以被普通的播放器隨意翻開(kāi)的。圖1用potplayer播放器翻開(kāi)視頻運(yùn)行程序,將視頻加密。圖2加密視頻圖3加密完成可見(jiàn),加密后的視頻不能再用potplayer翻開(kāi)了。圖4翻開(kāi)時(shí)出現(xiàn)錯(cuò)誤用該程序翻開(kāi)視頻:圖5翻開(kāi)操作翻開(kāi)時(shí),軟件自動(dòng)解密已加密過(guò)的視頻。圖6翻開(kāi)時(shí)的解密解密完成后自動(dòng)播放視頻。圖7播放器界面解密功能的使用。圖8解密圖9解密完成解密完成后,又可以用potplayer再次翻開(kāi)該視頻了。圖10可再次翻開(kāi)的視頻文件翻開(kāi)五次后,會(huì)自動(dòng)退出并顯示“超過(guò)使用次數(shù)!〞的提示。圖11運(yùn)行程序后會(huì)在桌面自動(dòng)生成count.txt文件圖12初始顯示為5圖13進(jìn)行過(guò)一次翻開(kāi)操作后,文件里的數(shù)減一圖14文件中的數(shù)減為0了圖15再次翻開(kāi)后,程序退出并在控制臺(tái)顯示信息實(shí)驗(yàn)總結(jié)這個(gè)是在剛剛接觸平安編程技術(shù)時(shí)編寫(xiě)的,其實(shí)不是個(gè)非常復(fù)雜的程序,但是正是通過(guò)這個(gè)程序,我開(kāi)始接觸有關(guān)平安編程技術(shù)方面的編程。實(shí)驗(yàn)的內(nèi)容是編寫(xiě)一個(gè)可以處理視頻〔也就是加密解密〕的視頻播放器,看到這個(gè)題目的時(shí)候我就決定使用Java來(lái)完成這個(gè)試驗(yàn)了,因?yàn)閾?jù)我所知,JMF可以十分方便的實(shí)現(xiàn)視頻播放器功能。編寫(xiě)得有些艱難,因?yàn)橹皼](méi)接觸過(guò)JMF方面的內(nèi)容,但是在老師和同學(xué)的幫助下我還是很快完成了本次實(shí)驗(yàn)。JMF這個(gè)框架十分方便,用它來(lái)實(shí)現(xiàn)多媒體方面的編程是非常快的,它提供了相當(dāng)多的接口而隱藏了一些具體實(shí)現(xiàn),這樣就可以不受平臺(tái)限制的呈現(xiàn)基媒體,因?yàn)殚_(kāi)發(fā)者使用的時(shí)候不用考慮到本地方法。關(guān)于運(yùn)行五次就關(guān)閉的功能,一開(kāi)始我想得比擬復(fù)雜,后來(lái)在同學(xué)的提示下,想到可以用讀寫(xiě)文件的方式來(lái)控制軟件翻開(kāi)次數(shù)。當(dāng)然,這是個(gè)比擬粗糙的方法,還有時(shí)間的話

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論