




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、DES加密算法以及在J2ME中的實(shí)現(xiàn)J2ME于1999年6月第一次由Sun推向Java團(tuán)體,經(jīng)過(guò)幾年的發(fā)展,逐漸被各種電子生產(chǎn)商所接受,但是J2ME的安全問(wèn)題也越來(lái)越受到大家的關(guān)注,為此,我們今天就來(lái)給大家介紹一下DES加密算法是如何在J2ME中實(shí)現(xiàn)的。一、J2ME簡(jiǎn)介J2ME是為機(jī)頂盒、移動(dòng)電話和PDA之類嵌入式消費(fèi)電子設(shè)備提供Java語(yǔ)言平臺(tái),包括虛擬機(jī)和一系列標(biāo)準(zhǔn)化的Java API。它和Java SE、Java EE一起構(gòu)成Java技術(shù)的三大版本,并且同樣是通過(guò)JCP(Java Community Process)制訂。二、DES加密算法以及在J2ME中的實(shí)現(xiàn)1、DES加密算法簡(jiǎn)介DE
2、S加密算是一種采用傳統(tǒng)加密方法的分組加密算法,它的算法是對(duì)稱的,既可用于加密又可用于解密。DES加密算法主要采用替換和移位的方法加密。它用56位密鑰對(duì)64位二進(jìn)制數(shù)據(jù)塊進(jìn)行加密,每次加密可對(duì)64位的輸入數(shù)據(jù)進(jìn)行1 6輪編碼,經(jīng)過(guò)一系列替換和移位后,輸入的64位原始數(shù)據(jù)轉(zhuǎn)換成完全不同的64位輸出數(shù)據(jù)。這種算法運(yùn)算速度快,密鑰產(chǎn)生容易,適合于在當(dāng)前大多數(shù)計(jì)算機(jī)上用軟件方法實(shí)現(xiàn)。2、Bouncy Castlc J2ME加密包介紹J2ME中DES加密方法可以由Bouncy Castlc CryptoAPIs來(lái)實(shí)現(xiàn),并且它是開(kāi)源代碼庫(kù)。以下列舉的程序代碼均基于此類的函數(shù)加密庫(kù)。此加密包是在對(duì)原有的J2S
3、E支持的基礎(chǔ)之上針對(duì)J2ME平臺(tái)特點(diǎn)而優(yōu)化生成的,它完全兼容Sun JCE框架,而且可以完全將其應(yīng)用在手機(jī)端,用戶可以開(kāi)發(fā)出適合自己的加密算法。3、Bouncy Castlc J2ME加密包使用方法我們可以到其網(wǎng)站上下載適用與J2mc版本的Api包。下面例程所下載的是lcrypto-j2mc-115 .Zip文件,解壓后的文件目錄為:docs,zips,src以及其它部分文檔文件。該類庫(kù)的使用如下:首先解壓Zips中midp_crypto.zip文件,生成Java和Org目錄,然后在JBuildcr中建立新工程,例如ncwpIj,接著按如下步驟進(jìn)行:1、在此目錄下建一個(gè)新目錄,如Lib;2、把
4、解壓后的Java和Org目錄內(nèi)容拷貝到Lib下;3、選擇Proj cct-projcctpropcrtics-path-rcquirc librarics-ncw- Lib目錄, 然后確定,此Lib目錄下的庫(kù)文件就添加到新建工程中了;4、繼續(xù)建立相應(yīng)的應(yīng)用性MIDPlct程序,在應(yīng)用中就可以使用此程序加密APls了。三、在J2ME中實(shí)現(xiàn)DES加密的具體例程介紹1、程序相關(guān)類中的函數(shù)說(shuō)明MIDlct1類中的Constructor函數(shù)用于界面元素的初始化:startApp():虛擬機(jī)調(diào)用的入口函數(shù):pauscApp():用于虛擬機(jī)調(diào)度本程序的暫停處理;dcstroyApp():銷毀本程序的調(diào)用處理
5、:cormnandAction()函數(shù)用于解析用戶相關(guān)的命令。本例程在原有加密API的基礎(chǔ)上構(gòu)造出一個(gè)新的加密解密類Encryptor,實(shí)現(xiàn)對(duì)已有APIs的封裝。程序的運(yùn)行界面如圖1所示。2、實(shí)現(xiàn)并執(zhí)行DES加密及解密部分的代碼程序開(kāi)頭是Java相應(yīng)類庫(kù)的引用和引用加密包的代碼,這部分內(nèi)容省略。緊接著本例程去完成界面元素的初始化,包括“退出”,“發(fā)送”,“后退”,“連接”的按鈕初始化,代碼同樣也省略了。接下來(lái)就是實(shí)現(xiàn)并執(zhí)行DES加密及解密部分的代碼設(shè)計(jì),代碼如下:public void sLarLApp ()m_display .sctCurrcnt (m_DispForm);/虛擬機(jī)調(diào)用的入
6、口函數(shù);public void pauscApp()/用于虛擬機(jī)調(diào)度本程序的暫停處理;public void dcstroyApp (boolcan unconditional)/銷毀本程序的調(diào)用處理;public void commandAction (Command cmd,Displayablc disp)ilIcmd=cmdExit)dcstroyApp (lalsc);notilyDcstr oycd ();il(cmdcmdEncrypt )DESExc();/command人ction 0函數(shù)用于解析用戶相關(guān)的命令解析privaLc void DESExc 0 String Tc
7、xt=”234567String Kcy;bytc Omsg;String sLrMsg;Kcy=m_KcyTcxL .gctSLring ();Tcxt=m OriginalTcxt .gctString ();Systcm .ouLprintln(“Kcy:” I Kcy);SysLcm .ouLprintln(“Tcxt:”ITcxL);iIKcy.cquals (“)0I(TcxL.cquals c”)m_KcyTcxL .sctString(”請(qǐng)輸入密鑰,原文!”);rcturn;Encryptor cncryptor = ncw Encryptor ( Kcy );Lry msg=
8、cncryptor .cncryptSLring (Tcx0;sLrMsg= ncw String(msg ,O,msg .lcngth );SysLcm .out.println(“cncodc :” sLrMsg );m_EncypLTcxt .sctString (strMsg );sLrMsg=cncryptor .dccryptString (msg);SysLcm .ouL.println( Dccodc : I sLrMsg );m_DccyptTcxt .sctString (strMsg );caLch (ExccpLion c ) public void mcssagc (
9、String s SysLcm .ouL.println( M: i s);public void status (String s) SysLcm .ouL.println(S: I s);3、在原有加密API的基礎(chǔ)上構(gòu)造出一個(gè)新的加密解密類Encryptor部分的代碼以下代碼是關(guān)于一個(gè)封裝the Bouncy Castlc輕量級(jí)APls,用于加密以及解密的類,具體設(shè)計(jì)如下:public class Encryptor privaLc BullcrcdBlockCiphcr ciphcr;privaLc KcyParamctcr kcy;public EncrypLor( bytc kcy)
10、ciphcrncw PauldcdBlockCiphcrncw CBCBlockCiphcrncw DESEnginc ();/初始化密鑰this.kcyncw KcyParamctcr(kcy);public EncrypLor( String kcy ) this( kcy.gctBytcs 0 );privatc bytc callCiphcr ( bytc data )Lhrows CryptoExccptio n int sizc ciphcr.gctOutputSizc ( data.lcngth );bytc rcsult = ncw bytc sizc ;int olcn =
11、ccssBytcs(data,O,data.lcngth,rcsult,0);olcn i ciphcr.doFinal ( rcsult, olcn );if( olcn sizc ) bytc Lmp = ncw bytc olcn ;SysLcm .arraycopy ( rcsult, 0, Lmp, 0, olcn );rcsult = Lmp;rcturn rcsult;/加密數(shù)據(jù)public synchronizcd bytc cncrypt ( bytc data )Lhrows CryptoExccpLion il( data = null II data
12、.lcngth = 0 ) rcturn ncw bytc0;ciphcr.init( Lruc, kcy );rcturn callCiphcr( data );/加密一個(gè)串public bytco cncryptSLring ( String data )Lhrows CryptoExccption if( data = null II data .lcngth O = 0 ) rcturn ncw bytc 0;rcturn cncrypt ( daLa .gctBytcs 0 );/解密數(shù)據(jù)public synchronizcd bytc dccrypt ( bytc data )Lhrows CryptoExccption if( data = null II data .lcngth = 0 ) rcturn ncw bytc0;ciphcr .init( Ialsc, kcy);rcturn callCiphcr( data);/下面的代碼是用于解密剛才加密了的數(shù)據(jù)public String dccry
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)戰(zhàn)略管理的核心內(nèi)容試題及答案
- VB項(xiàng)目開(kāi)發(fā)中團(tuán)隊(duì)合作考核題及答案
- 監(jiān)控與日志管理在應(yīng)用中的意義試題及答案
- 寧夏銀川市興慶區(qū)唐徠回民中學(xué)2025屆七下數(shù)學(xué)期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 2025年技術(shù)創(chuàng)新與戰(zhàn)略轉(zhuǎn)型試題及答案
- 深入探討軟件設(shè)計(jì)中的功能與非功能屬性試題及答案
- 公司戰(zhàn)略與社會(huì)責(zé)任關(guān)系探討試題及答案
- 數(shù)據(jù)分析與挖掘技巧考題試題及答案
- 法學(xué)概論中的法條適用實(shí)踐試題及答案
- 法學(xué)概論學(xué)習(xí)的長(zhǎng)期目標(biāo)設(shè)置試題及答案
- 2025四川愛(ài)眾集團(tuán)第一批次招聘10人筆試參考題庫(kù)附帶答案詳解
- 工業(yè)用地開(kāi)發(fā)項(xiàng)目成本分析與資金籌措方案
- 2025年初中地理學(xué)業(yè)水平考試模擬試卷:地圖與地球知識(shí)綜合訓(xùn)練試題卷及答案
- (人教2024版)英語(yǔ)七年級(jí)下冊(cè)Unit7.4 Section B 1a-2d課件(新教材)
- 2025閩教版英語(yǔ)三年級(jí)下冊(cè)單詞表
- 關(guān)鍵特殊過(guò)程監(jiān)控記錄表
- 配電變壓器調(diào)檔施工技術(shù)方案
- 預(yù)防性健康檢管理制度管理辦法
- 英漢語(yǔ)法對(duì)比研究
- CAAP2008X功能概述PPT課件
- 柴油發(fā)電機(jī)組檢查驗(yàn)收表_word文檔免費(fèi)
評(píng)論
0/150
提交評(píng)論