当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: Java是一种跨平台的、解释型语言。
 

 

 ·关于java的classpath详解    »显示摘要«
    摘要:   java 的新入门者对classpath往往比较困惑,为何在开发环境中能运行的东东出去就不好,或在外面运行的东东挺溜的进了开发环境就死菜。   java的优点就是他是一个自动支持网络功能的东东,举一个简单例子来将   比方有一个application用到了java.lang.string(事实上要是有一个程序没用到它,太难以想象了)和com.shinechina.myclass(我自己写的......
 ·开发实例:jsp中实现全文检索    »显示摘要«
    摘要:jsp中的全文检索 全文检索一直都是web方面的关键技术,如何在浩如烟海的信息中找到自己想要的信息是人们最关心的。鼎鼎大名的google就是一个很成功的例子,网络上的人们大部分都用google来查找自己需要的内容。全文检索主要有两个技术指标:快速和精确。前一段时间做了一个新闻系统,老板要加上全文检索的功能,想了很久才用一个不太高明的方法实现了。现在分享一下,希望是抛砖引玉吧,如果大家有更好的办法......


如何保护Java程序
java是一种跨平台的.解释型语言.java 源代码编译中间“字节码”存储于class文件中.class文件是一种字节码形式的中间代码,该字节码中包括了很多源代码的信息,例如变量名.方法名等.因此,java中间代码的反编译就变得非常容易.目前市场上有许多免费的.商用的反编译软件,都能够生成高质量的反编译后的源代码.所以,对开发人员来说,如何保护java程序就变成了一个非常重要的挑战.本文首先讨论了保护java程序的基本方法,然后对代码混淆问题进行深入研究,最后结合一个实际的应用程序,分析如何在实践中保护java程序.

  反编译成为保护java程序的最大挑战 【程序编程相关:Jsp连接数据库大全

【推荐阅读:配置自已的JAVA环境

  通常c.c++等编程语言开发的程序都被编译成目标代码,这些目标代码都是本机器的二进制可执行代码.通常所有的源文件被编译.链接成一个可执行文件.在这些可执行文件中,编译器删除了程序中的变量名称.方法名称等信息,这些信息往往是由内存地址表示,例如如果需要使用一个变量,往往是通过这个变量的地址来访问的.因此,反编译这些本地的目标代码就是非常困难的. 【扩展信息:JSP的login程序代码

  java语言的出现,使得反编译变得非常容易而有效.原因如下:1.由于跨平台的需求,java的指令集比较简单而通用,较容易得出程序的语义信息;2.java编译器将每一个类编译成一个单独的文件,这也简化了反编译的工作;3.java 的class文件中,仍然保留所有的方法名称.变量名称,并且通过这些名称来访问变量与方法,这些符号往往带有许多语义信息.由于java程序自身的特点,对于不经过处理的java程序反编译的效果非常好.

  目前,市场上有许多java的反编译工具,有免费的,也有商业使用的,还有的是开放源代码的.这些工具的反编译速度与效果都非常不错.好的反编译软件,能够反编译出非常接近源代码的程序.因此,通过反编译器,黑客能够对这些程序进行更改,或者复用其中的程序.因此,如何保护java程序不被反编译,是非常重要的一个问题.

  常用的保护技术

  由于java字节码的抽象级别较高,因此它们较容易被反编译.本节介绍了几种常用的方法,用于保护java字节码不被反编译.通常,这些方法不能够绝对防止程序被反编译,而是加大反编译的难度而已,因为这些方法都有自己的使用环境与弱点.

  隔离java程序

  最简单的方法就是让用户不能够访问到java class程序,这种方法是最根本的方法,具体实现有多种方式.例如,开发人员可以将关键的java class放在服务器端,客户端通过访问服务器的相关接口来获得服务,而不是直接访问class文件.这样黑客就没有办法反编译class文件.目前,通过接口提供服务的标准与协议也越来越多,例如 http.web service.rpc等.但是有很多应用都不适合这种保护方式,例如对于单机运行的程序就无法隔离java程序.这种保护方式见图1所示.

图1隔离java程序示意图

  对class文件进行加密

  为了防止class文件被直接反编译,许多开发人员将一些关键的class文件进行加密,例如对注册码.序列号管理相关的类等.在使用这些被加密的类之前,程序首先需要对这些类进行解密,而后再将这些类装载到jvm当中.
...   下一页
 ·jsp由浅入深(9)jsp sessions    »显示摘要«
    摘要: 在经典的网站上,访问者可以浏览几个网页并执行一些交互的行为。如果你在编写这样的网站,利用每一个用户的一些数据是非常有用的。为了这个目的,我们可以使用jsp中的"sessions"。 session是一个跟用户相关的对象。当用户访问网站的时候,一些数据就被存放于session中,并在需要的时候从中取出数据。session为不同的用户保存了不同了数据。 以下的网页将用户的名字放置于session......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE