RSS
热门关键字:
当前位置 : 主页>编程开发>java编程>入门>列表

Java加密解密---自定义类加载器的应用

来源:我要研发网 作者: 时间:1970-01-01 点击:



内容摘要:很多其他技术也可以实现对JAVA文件加密解密。我现在所想要研究,就是其中一种。JAVA灵活性使反编译变得容易,同时,也让我们加密解密方法变得灵活。利用自定义CLASSLOADER。

  JAVA是解释执行语言,对于不同操作平台都有相应JVM对字节码文件进行解释执行。而这个字节码文件,也就是我们平时所看到每一个.class文件。这是我们大家都知道常识,也就是由.java文件,经过编译器编译,变成JVM所能解释.class文件。而这个过程,在现在公开网络技术中,利用一个反编译器,任何人都可以很容易获取它源文件。这对于很多人来说是不希望看到。对于加密解密技术,我懂不多,有些可以利用某种技术“模糊”JAVA类文件。这样能够使反编译难度增加。但估计反编译器技术水平也在不断提升,导致这种方法层层受阻。另外还有很多其他技术也可以实现对JAVA文件加密解密。我现在所想要研究,就是其中一种。JAVA灵活性使反编译变得容易,同时,也让我们加密解密方法变得灵活。利用自定义CLASSLOADER。 字串9

  JAVA中每一个类都是通过类加载器加载到内存中。对于类加载器工作流程如下表示: 字串9

  1.searchfile()

字串9

  找到我所要加载类文件。(抛除JAR包概念,现在只是要加载一个.class文件) 字串6

  2.loadDataClass() 字串4

  读取这个类文件字节码。 字串9

  3.difineClass() 字串4

  加载类文件。(加载过程其实很复杂,我们现在先不研究它。)从这个过程中我们能很清楚发现,自定义类加载能够很轻松控制每个类文件加载过程。这样在第二步(loadDataClass)和第三步(difineClass)之间,我们将会有自己空间灵活控制这个过程。我们加密解密技术就应用到这里。加密解密 JAVA加密解密技术有很多。JAVA自己提供了良类库对各种算法进行支持。对于采用哪种算法,网络上说法不一,自己去GOOGLE一下吧。下面用DES对称加密算法(设定一个密钥,然后对所有数据进行加密)来简单举个例子。首先,生成一个密钥KEY。

字串6

  我把它保存到key.txt中。这个文件就象是一把钥匙。谁拥有它,谁就能解开我们类文件。

字串8

  代码参考如下: 字串4

package com.neusoft.jiami;
import java.io.File;
import java.io.FileOutputStream;
import java.security.SecureRandom;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
class Key {
  private String keyName;
  public Key(String keyName) {
    this.keyName = keyName;
  }
  public void createKey(String keyName) throws Exception {
    // 创建一个可信任随机数源,DES算法需要
    SecureRandom sr = new SecureRandom();
    // 用DES算法创建一个KeyGenerator对象
    KeyGenerator kg = KeyGenerator.getInstance("DES");
    // 初始化此密钥生成器,使其具有确定密钥长度
    kg.init(sr);
    // 生成密匙
    SecretKey key = kg.generateKey();
    // 获取密钥数据
    byte rawKeyData[] = key.getEncoded();
    // 将获取到密钥数据保存到文件中,待解密时使用
    FileOutputStream fo = new FileOutputStream(new File(keyName));

字串7


    fo.write(rawKeyData);
  }
  public static void main(String args[]) {
    try {
      new Key("key.txt");
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

字串1

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册