JAVA加密解密---自定义类加载器应用 2020年JAVA公共基础
首页
外语考试
雅思考试
雅思听力
雅思阅读
雅思写作
雅思口语
雅思预测
真题回忆
雅思基础
雅思词汇
各语种外语学习
日语
韩语
法语
德语
俄语
西班牙语
葡萄牙语
意大利语
PETS
CET3
CET4四级
CET6
专四专八
BEC
托福
GRE
Gmat
LSAT
商业托福
职称英语
金融英语
MSE
口译笔译
实用英语
世界语
医学类
注册护士
执业药师
执业医师
口腔职业医师考试
职业资格
公务员考试
报关员考试
外销员
国际商务师
报检员/货代资格
物流师资格
单证员
领导公开选拔
警察招考
证券资格
导游资格
保险资格
司法考试
人力资源认证
教师资格
秘书资格
电子商务师认证
项目管理师
电气工程师
律师资格
统计专业资格
环境影响评价工程师
房地产经济人
土地登记代理人
卫生专业技术资格
房地产估价师
学历考试
中考
高考
成人高考
自学考试
双学位
法律硕士
同等学历
MBA
EMBA
MPA
考研
会计硕士
在职硕士
教育硕士
工程硕士
研修班
考博
会计考试
会计从业资格
助理会计考试
会计师考试
注册会计师
注册税务师
资产评估师
高级会计师
经济师考试
ACCA/CAT认证
精算师
国际内审师
建筑工程
一级建造师
二级建造师考试
造价工程师
注册建筑师
结构工程师
监理工程师
咨询工程师
城市规划师
安全工程师
土地估价师
岩土工程师
电脑认证
计算机二级考试
一三四级
软件水平
微软认证
思科认证
Oracle
Linux
JAVA
其他与创业
学生创业
招聘就业
0
JAVA加密解密---自定义类加载器应用
文章作者
100test
发表时间 2007:05:02 15:22:02
来源 100Test.Com百考试题网
最近在研究JAVA CLASS LOADING技术,已实现了一个自定义的加载器。对目前自定义加载器的应用,还在探讨中。下面是自定义的CLASSLOADER在JAVA加密解密方面的一些研究。
JAVA安全
JAVA是解释执行的语言,对于不同的操作平台都有相应的JVM对字节码文件进行解释执行。而这个字节码文件,也就是我们平时所看到的每一个.class文件。
这是我们大家都知道的常识,也就是由.java文件,经过编译器编译,变成JVM所能解释的.class文件。
而这个过程,在现在公开的网络技术中,利用一个反编译器,任何人都可以很容易的获取它的源文件。这对于很多人来说是不希望看到的。
对于加密解密技术,我懂的不多,有些可以利用某种技术“模糊”JAVA类文件。这样能够使反编译的难度增加。但估计反编译器的技术水平也在不断提升,导致这种方法层层受阻。另外还有很多其他的技术也可以实现对JAVA文件的加密解密。我现在所想要研究的,就是其中的一种。
JAVA的灵活性使反编译变得容易,同时,也让我们的加密解密的方法变得灵活。
利用自定义的CLASSLOADER
参照:http://www.blogjava.net/realsmy/archive/2007/04/18/111582.html
JAVA中的每一个类都是通过类加载器加载到内存中的。对于类加载器的工作流程如下表示:
1.searchfile()
找到我所要加载的类文件。(抛除JAR包的概念,现在只是要加载一个.class文件)
2.loadDataClass()
读取这个类文件的字节码。
3.difineClass()
加载类文件。(加载的过程其实很复杂,我们现在先不研究它。)
从这个过程中我们能很清楚的发现,自定义的类加载能够很轻松的控制每个类文件的加载过程。这样在第二步(loadDataClass)和第三步(difineClass)之间,我们将会有自己的空间灵活的控制这个过程。
我们加密解密的技术就应用到这里。
加密解密
JAVA加密解密的技术有很多。JAVA自己提供了良好的类库对各种算法进行支持。对于采用哪种算法,网络上说法不一,自己去GOOGLE一下吧。
下面用DES对称加密算法(设定一个密钥,然后对所有的数据进行加密)来简单举个例子。
首先,生成一个密钥KEY。
我把它保存到key.txt中。这个文件就象是一把钥匙。谁拥有它,谁就能解开我们的类文件。代码参考如下:
package
com.neusoft.jiami.
import
java.io.File.
import
java.io.FileOutputStream.
import
java.security.SecureRandom.
import
javax.crypto.KeyGenerator.
import
javax.crypto.SecretKey.