国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

JAVA加密解密---自定義類加載器應(yīng)用

2019-11-17 05:58:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
   最近在研究java CLASS LOADING技術(shù),已實(shí)現(xiàn)了一個(gè)自定義的加載器。對(duì)目前自定義加載器的應(yīng)用,還在探討中。下面是自定義的CLASSLOADER在JAVA加密解密方面的一些研究。

JAVA安全   JAVA是解釋執(zhí)行的語(yǔ)言,對(duì)于不同的操作平臺(tái)都有相應(yīng)的JVM對(duì)字節(jié)碼文件進(jìn)行解釋執(zhí)行。而這個(gè)字節(jié)碼文件,也就是我們平時(shí)所看到的每一個(gè).class文件。

    這是我們大家都知道的常識(shí),也就是由.java文件,經(jīng)過(guò)編譯器編譯,變成JVM所能解釋的.class文件。

    而這個(gè)過(guò)程,在現(xiàn)在公開(kāi)的網(wǎng)絡(luò)技術(shù)中,利用一個(gè)反編譯器,任何人都可以很輕易的獲取它的源文件。這對(duì)于很多人來(lái)說(shuō)是不希望看到的。

    對(duì)于加密解密技術(shù),我懂的不多,有些可以利用某種技術(shù)“模糊”JAVA類文件。這樣能夠使反編譯的難度增加。但估計(jì)反編譯器的技術(shù)水平也在不斷提升,導(dǎo)致這種方法層層受阻。另外還有很多其他的技術(shù)也可以實(shí)現(xiàn)對(duì)JAVA文件的加密解密。我現(xiàn)在所想要研究的,就是其中的一種。

    JAVA的靈活性使反編譯變得輕易,同時(shí),也讓我們的加密解密的方法變得靈活。

利用自定義的CLASSLOADER

參照:http://www.blogjava.net/realsmy/archive/2007/04/18/111582.Html

JAVA中的每一個(gè)類都是通過(guò)類加載器加載到內(nèi)存中的。對(duì)于類加載器的工作流程如下表示:
1.searchfile()
找到我所要加載的類文件。(拋除JAR包的概念,現(xiàn)在只是要加載一個(gè).class文件)
2.loadDataClass()
讀取這個(gè)類文件的字節(jié)碼。
3.difineClass()
加載類文件。(加載的過(guò)程其實(shí)很復(fù)雜,我們現(xiàn)在先不研究它。)

    從這個(gè)過(guò)程中我們能很清楚的發(fā)現(xiàn),自定義的類加載能夠很輕松的控制每個(gè)類文件的加載過(guò)程。這樣在第二步(loadDataClass)和第三步(difineClass)之間,我們將會(huì)有自己的空間靈活的控制這個(gè)過(guò)程。

我們加密解密的技術(shù)就應(yīng)用到這里。

加密解密

    JAVA加密解密的技術(shù)有很多。JAVA自己提供了良好的類庫(kù)對(duì)各種算法進(jìn)行支持。對(duì)于采用哪種算法,網(wǎng)絡(luò)上說(shuō)法不一,自己去Google一下吧。

下面用DES對(duì)稱加密算法(設(shè)定一個(gè)密鑰,然后對(duì)所有的數(shù)據(jù)進(jìn)行加密)來(lái)簡(jiǎn)單舉個(gè)例子。

首先,生成一個(gè)密鑰KEY。
我把它保存到key.txt中。這個(gè)文件就象是一把鑰匙。誰(shuí)擁有它,誰(shuí)就能解開(kāi)我們的類文件。代碼參考如下:
Word-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">JAVA加密解密---自定義類加載器應(yīng)用(圖一)package com.neusoft.jiami;
JAVA加密解密---自定義類加載器應(yīng)用(圖一)
JAVA加密解密---自定義類加載器應(yīng)用(圖一)import java.io.File;
JAVA加密解密---自定義類加載器應(yīng)用(圖一)import java.io.FileOutputStream;
JAVA加密解密---自定義類加載器應(yīng)用(圖一)import java.security.SecureRandom;
JAVA加密解密---自定義類加載器應(yīng)用(圖一)import javax.crypto.KeyGenerator;


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿克陶县| 施秉县| 丽江市| 景德镇市| 灵璧县| 清流县| 津市市| 南涧| 天津市| 元江| 荆门市| 扶绥县| 东台市| 古丈县| 玛纳斯县| 宿松县| 太原市| 怀仁县| 玛纳斯县| 都昌县| 平顺县| 崇义县| 盐津县| 通江县| 策勒县| 朝阳县| 丰顺县| 信丰县| 宣汉县| 西城区| 漳浦县| 南昌市| 兰西县| 辉南县| 高阳县| 贞丰县| 孝感市| 凤翔县| 旺苍县| 博白县| 舒兰市|