JAVA编译成CLASS文件发布。JAR发布。
但是用一些反编译软件能把代码还原出来。
那不是代码就泄露咯?如果是商业话的呢?我做了个实验下载了一个JAVA反编译的软件
把CLASS文件还原成了代码而且是一字不漏的反编译出来了包括JDK里面的CLASS文件也一样
这样JAVA代码还有什么安全而言呢?没有搞懂请高手门帮忙解答?如何才能把JAVA代码做的更安全呢?

解决方案 »

  1.   

    用"混淆器"编译就可以了.
         网上有JAVA混淆器下载.
         它会自动在编译过程中加入乱码.
         然后反编译的时候里面就会有@#*($&*#*#)很多乱码.
         楼主可以去试试.
      

  2.   

    混淆其实就是把变量名和方法名进行替换,前提是你的程序中不能使用反射,否则那就麻烦了,呵呵!
    如果想要安全的话,可以试下用JNI和ClassLoader来实现,首先将要加载的jar包进行加密,至于加密算法自己选吧,用自己的ClassLoader替换系统的Loader来加载程序,而ClassLoader调用JNI里的解密方法来对jar包解密再加载!
    只是一个想法,可以上网搜索一下,有没有现成的实现,呵呵!
      

  3.   

    Java本来就是面向开源的.其他的就不用多说了
      

  4.   

    我只是想实现简单的混淆...
    并如何使用混淆后的CLASS...混淆后的CLASS变了...还能用吗?
      

  5.   

    你可以对你得代码进行加密处理 处理之后jvm还会识别 但是我们是看不懂的
      

  6.   

    都用些什么混淆器呢....
    推荐几个嘛!混淆后的类...能直接打包使用或者直接用JAVA命令运行吗?我使用了一个混淆器...类名都变了!
      

  7.   

    proguard3.9
    是一种混淆器
    用过,还可以,需要自己写脚本的。混淆好了后,你反编译出来,类名都边成 1.class,2.clsss,a.class.......里面的代码那就更不是人能看得懂的...哈哈哈
      

  8.   

    某同学说:
    它会自动在编译过程中加入乱码. 
        然后反编译的时候里面就会有@#*($&*#*#)很多乱码. 
    ..我觉得混淆器不是这样的,混淆是要把人给搞混,不是把要jvm都混淆了,否则java 程序还怎么执行??
    混淆器还是需要你人告诉他混淆的规则的,哪些类是不能混淆的,入口方法在哪都要告诉他
      

  9.   

    混淆后的类还能使用吗?把混淆后的类  打包成JAR...混淆后如何使用...
      

  10.   

    "混淆器"??
    还有这重东西,长见识了还有种笨重的方法,把JAVA转换成.exe文件。推荐工具:JSmooth。简单好用。
      

  11.   

    我也是深深体验到了这一点,可对于“混淆器“还不甚懂呀,还需要再学习一下啦,对于jad反编译话,我也体会到了这一点呀!