国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

運(yùn)用加密技術(shù)保護(hù)Java源代碼(2)

瀏覽:16日期:2024-06-29 14:49:34
內(nèi)容: resolveClass( clasz );// 把類返回給調(diào)用者return clasz;} catch( IOException ie ) {throw new ClassNotFoundException( ie.toString() );} catch( GeneralSecurityException gse ) {throw new ClassNotFoundException( gse.toString() );}}Listing 2顯示了一個(gè)簡(jiǎn)單的loadClass實(shí)現(xiàn)。代碼中的大部分對(duì)所有ClassLoader對(duì)象來(lái)說(shuō)都一樣,但有一小部分(已通過(guò)注釋標(biāo)記)是特有的。在處理過(guò)程中,ClassLoader對(duì)象要用到其他幾個(gè)輔助方法: findLoadedClass:用來(lái)進(jìn)行檢查,以便確認(rèn)被請(qǐng)求的類當(dāng)前還不存在。loadClass方法應(yīng)該首先調(diào)用它。 defineClass:獲得原始類文件字節(jié)碼數(shù)據(jù)之后,調(diào)用defineClass把它轉(zhuǎn)換成一個(gè)Class對(duì)象。任何loadClass實(shí)現(xiàn)都必須調(diào)用這個(gè)方法。 findSystemClass:提供默認(rèn)ClassLoader的支持。如果用來(lái)尋找類的定制方法不能找到指定的類(或者有意地不用定制方法),則可以調(diào)用該方法嘗試默認(rèn)的裝入方式。這是很有用的,特別是從普通的JAR文件裝入標(biāo)準(zhǔn)Java類時(shí)。 resolveClass:當(dāng)JVM想要裝入的不僅包括指定的類,而且還包括該類引用的所有其他類時(shí),它會(huì)把loadClass的resolve參數(shù)設(shè)置成true。這時(shí),我們必須在返回剛剛裝入的Class對(duì)象給調(diào)用者之前調(diào)用resolveClass。三、加密、解密 Java加密擴(kuò)展即Java Cryptography Extension,簡(jiǎn)稱JCE。它是Sun的加密服務(wù)軟件,包含了加密和密匙生成功能。JCE是JCA(Java Cryptography Architecture)的一種擴(kuò)展。 JCE沒(méi)有規(guī)定具體的加密算法,但提供了一個(gè)框架,加密算法的具體實(shí)現(xiàn)可以作為服務(wù)提供者加入。除了JCE框架之外,JCE軟件包還包含了SunJCE服務(wù)提供者,其中包括許多有用的加密算法,比如DES(Data Encryption Standard)和Blowfish。 為簡(jiǎn)單計(jì),在本文中我們將用DES算法加密和解密字節(jié)碼。下面是用JCE加密和解密數(shù)據(jù)必須遵循的基本步驟:步驟1:生成一個(gè)安全密匙。在加密或解密任何數(shù)據(jù)之前需要有一個(gè)密匙。密匙是隨同被加密的應(yīng)用一起發(fā)布的一小段數(shù)據(jù),Listing 3顯示了如何生成一個(gè)密匙。 【Listing 3:生成一個(gè)密匙】// DES算法要求有一個(gè)可信任的隨機(jī)數(shù)源SecureRandom sr = new SecureRandom();// 為我們選擇的DES算法生成一個(gè)KeyGenerator對(duì)象KeyGenerator kg = KeyGenerator.getInstance( 'DES' );kg.init( sr );// 生成密匙SecretKey key = kg.generateKey();// 獲取密匙數(shù)據(jù)byte rawKeyData[] = key.getEncoded();/* 接下來(lái)就可以用密匙進(jìn)行加密或解密,或者把它保存為文件供以后使用 */doSomething( rawKeyData );步驟2:加密數(shù)據(jù)。得到密匙之后,接下來(lái)就可以用它加密數(shù)據(jù)。除了解密的ClassLoader之外,一般還要有一個(gè)加密待發(fā)布應(yīng)用的獨(dú)立程序(見(jiàn)Listing 4)。 【Listing 4:用密匙加密原始數(shù)據(jù)】// DES算法要求有一個(gè)可信任的隨機(jī)數(shù)源SecureRandom sr = new SecureRandom();byte rawKeyData[] = /* 用某種方法獲得密匙數(shù)據(jù) */;// 從原始密匙數(shù)據(jù)創(chuàng)建DESKeySpec對(duì)象DESKeySpec dks = new DESKeySpec( rawKeyData );// 創(chuàng)建一個(gè)密匙工廠,然后用它把DESKeySpec轉(zhuǎn)換成// 一個(gè)SecretKey對(duì)象SecretKeyFactory keyFactory = SecretKeyFactory.getInstance( 'DES' );SecretKey key = keyFactory.generateSecret( dks );// Cipher對(duì)象實(shí)際完成加密操作Cipher cipher = Cipher.getInstance( 'DES' );// 用密匙初始化Cipher對(duì)象cipher.init( Cipher.ENCRYPT_MODE, key, sr );// 現(xiàn)在,獲取數(shù)據(jù)并加密byte data[] = /* 用某種方法獲取數(shù)據(jù) */// 正式執(zhí)行加密操作byte encryptedData[] = cipher.doFinal( data );// 進(jìn)一步處理加密后的數(shù)據(jù)doSomething( encryptedData );步驟3:解密數(shù)據(jù)。運(yùn)行經(jīng)過(guò)加密的應(yīng)用時(shí),ClassLoader分析并解密類文件。操作步驟如Listing 5所示。 【Listing 5:用密匙解密數(shù)據(jù)】// DES算法要求有一個(gè)可信任的隨機(jī)數(shù)源SecureRandom sr = new SecureRandom();byte rawKeyData[] = /* 用某種方法獲取原始密匙數(shù)據(jù) */;// 從原始密匙數(shù)據(jù)創(chuàng)建一個(gè)DESKeySpec對(duì)象DESKeySpec dks = new DESKeySpec( rawKeyData );// 創(chuàng)建一個(gè)密匙工廠,然后用它把DESKeySpec對(duì)象轉(zhuǎn)換成// 一個(gè)SecretKey對(duì)象SecretKeyFactory keyFactory = SecretKeyFactory.getInstance( 'DES' );SecretKey key = keyFactory.generateSecret( dks );// Cipher對(duì)象實(shí)際完成解密操作Cipher cipher = Cipher.getInstance( 'DES' );// 用密匙初始化Cipher對(duì)象cipher.init( Cipher.DECRYPT_MODE, key, sr ); Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 欧美亚洲日本韩国一级毛片 | 亚洲精品久久久久网站 | 国产高清精品在线 | 免费公开视频人人人人人人人 | 日韩18在线观看 | 亚洲欧美一区二区三区在线播放 | 香蕉视频国产精品 | 国产一在线精品一区在线观看 | 欧美成人h版在线观看 | 久草高清视频 | 手机看a| 国产精品人伦久久 | 国产全部理论片线观看 | 成年男女拍拍拍免费视频 | 中国一级做a爱片免费 | 亚洲天堂久久精品成人 | 伊人22综合 | 在线免费看一级片 | 真正全免费视频a毛片 | 国产黄a三级三级看三级 | 国产乱子精品免费视观看片 | 成人欧美一级毛片免费观看 | 亚洲日韩中文字幕天堂不卡 | 精品国产高清不卡毛片 | 日韩精品一区二区三区中文在线 | 最新国产一区二区精品久久 | 亚洲日本在线看片 | 亚洲国内精品 | 一级毛片区 | 久久国产精品影院 | 美女双腿打开让男人桶爽网站 | 国产精品一区二区免费 | 天堂8中文在线 | 国产日本三级欧美三级妇三级四 | 九九这里只精品视在线99 | 国产欧美久久久另类精品 | 日本免费一区二区三区a区 日本免费一区二区三区看片 | 国产一区二区三区国产精品 | 一区二区三区欧美视频 | 欧美韩国日本一区 | 欧美人成在线视频 |