易截截图软件、单文件、免安装、纯绿色、仅160KB

运用加密技术保护Java源代码

       运用加密技术保护Java源代码
       
java
程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。本文讨论如何在不修改原有程序的情
况下,通过
加密
技术保护源代
码。
  一、为什么要
加密


  对于传统的C或C++之类的语言来说,要在Web上保护源代码是很容易的,只要不发布它就可以。遗憾的是,Java程序的源代码很容易被别
人偷看。只要有一个反编译器,任何人都可以分析别人的代码。Java的灵活性使得源代码很容易被窃取,但与此同时,它也使通过加密保护代码变得相对容易,
我们唯一需要了解的就是Java的ClassLoader对象。当然,在
加密
过程中,有关
java
Cryptography Extension(JCE)的知识也是必不可少的。
  
  有几种技
术可以“模糊”
java
类文
件,使得反编译器处理类文件的效果大打折扣。然而,修改反编译器使之能够处理这些经过模糊处理的类文件并不是什么难事,所以不能简单地依赖模糊技术来保证
源代码的
安全

  
 
 我们可以用流行的加密工具
加密

用,比如PGP(Pretty G
OO
d Privacy)或GPG(GNU Privacy
Guard)。这时,最终用户在运行应用之前必须先进行解密。但解密之后,最终用户就有了一份不加密的类文件,这和事先不进行
加密
没有什么差别。
  
  Java运
行时装入字节码的机制隐含地意味着可以对字节码进行修改。JVM每次装入类文件时都需要一个称为ClassLoader的对象,这个对象负责把新的类装入
正在运行的JVM。
jvm

ClassLoader一个包含了待装入类(比如
java
.lang.Object)名字的字符串,然后由ClassLoader负责找到类文件,装入原始数据,并把它转换成一
个Class对象。
  
  我们可以通过定制ClassLoader,在类文件执行之前修改它。这种技术的应用非常广泛——在这里,它
的用途是在类文件装入之时进行解密,因此可以看成是一种即时解密器。由于解密后的字节码文件永远不会保存到文件系统,所以窃密者很难得到解密后的代码。
 
 
  由于把原始字节码转换成Class对象的过程完全由系统负责,所以创建定制ClassLoader对象其实并不困难,只需先获得原始数据,
接着就可以进行包含解密在内的任何转换。
  
  Java 2在一定程度上简化了定制ClassLoader的构建。在
java

2中,loa


相关文档:

Java与模式: 6大原则

1,OCP(Open-Close Principle)开闭原则       
     Software entities should be open for extension,but closed for modification,(在设计一个模块的时候,应当使这个模块可以在不被修改的前提下扩展)。       
 &nbs ......

JAVA获得文件路径的几种方式

关于绝对路径和相对路径:
绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在Servlet中,"/"代表W ......

java内存分析



JAVA
中,有六个不同的地方可以存储数据:

1.
寄存器(
register
)。这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极
其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。

2.
堆栈(
stac ......

JAVA编程规范

命名规范
 
定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性)
 
Package 的命名
Package 的名字应该都是由一个小写单词组成。
 
Class 的命名
Class 的名字必须 ......

传智播客java培训 java基础之JDBC

昨天睡得太晚,严重影响了今天的学习,实在是得不偿失!
关于java的基础知识还有二十天就要结束了,现在我们已经开始做一些小的练习,发现自己的思路有时候跟不上,
真上火!
学而实习之,不能丢了西瓜捡芝麻,上课要紧跟老师节奏,不能自己做自己的,老师讲老师的!
调整心态,用好的学习方法方能事半功倍;
JDBC(Ja ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号