由于项目要求(虽然我觉得代码没什么机密可言...),写好的jar包需要做一定加密处理

这里提供两种办法,一种奇葩,一种通用

1. 直接修改jar文件:

具体步骤:

  在代码中插入一段不会运行的到的代码

     private class Invalid{
private Invalid() { }
}

  使用eclipse打包文件,右键export > java > JAR file > finish

  使用解压软件打开jar包。记事本打开...$Invalid.class文件,去掉里面的d

  # 最好另存外面,然后把里面的删了再拖进来,貌似不能直接保存

加密效果:

  好像解压后class文件仍旧可以破解

方法缺陷:

  如上

2.使用Proguard混乱工具

具体步骤:

  下载Proguard

  推荐下载5.X版本,和java8更兼容,而4.X版本和java7兼容   

  # 不然会出现Unsupported class version number [52.0] 的错误

  可以在CSDN上下载(http://download.csdn.net/download/kong_gu_you_lan/9637131)

  # 因为下这个做了好久的奖赏任务。。有个是邮箱验证成功出来的两个字是什么,直接填了“登录”,哈哈

  下载后解压,点开Proguard5.X>bin>proguardgui.bat

  使用Proguard

  左侧input/output,在右边add input添加需要加密jar包,add output自己命名一个导出jar包,下方的library中,有一个默认的rt.jar,如果没有引入什么自定义jar文件,直接这个默认就好

  左侧obfuscation,选择图中这几项即可,其中第2、3个勾勾对应的文件a.txt是混淆函数名,b.txt是混淆类名

  # 其实就是瞎编几个类名和函数名,一个名字占一行

  

   左侧Shrinking,最上面的Shrink去掉

  # 不然会如下报错,The output jar is empty. Did you specify the proper '-keep' options?

  其他默认,点击左侧Process > Process 加密完成

加密效果:

  还可以

方法缺陷:

  无法对抗功能更加强大的反编译软件

java的jar包加密的更多相关文章

  1. Java Jar 包加密 -- XJar

    Java Jar 包加密 一.缘由 Java的 Jar包中的.class文件可以通过反汇编得到源码.这样一款应用的安全性就很难得到保证,别人只要得到你的应用,不需花费什么力气,就可以得到源码. 这时候 ...

  2. Java代码加密与反编译(一):利用混淆器工具proGuard对jar包加密

    Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候.所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译.通 ...

  3. 实用的jar包加密方案

    前言 jar包相信大家都很熟悉,是通过打包java工程而获得的产物,但是jar包是有一个致命的缺点的,那就是很容易被反编译,只需要使用jd-gui就可以很容易的获取到java源码. 如果你想要防止别人 ...

  4. java 执行 jar 包中的 main 方法

    java 执行 jar 包中的 main 方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar执行后总是运行指定的主方法,如果 jar 中有多 ...

  5. Java的jar文件安装成windows 服务

    Java的jar文件安装成windows 服务: 1.下载:nssm,复制到jar文件目录下 2. jar文件目录下创建bat文件[run.bat],内容为[java -jar 文件名.jar] 3. ...

  6. Java常用jar包用途

    Java常用jar包用途: USAGE INDEX JAR NAME USAGE 1 ASM asm-2.2.3.jar ASM字节码库 2 ASM asm-commons-2.2.3.jar ASM ...

  7. java 从jar包中读取资源文件

    在代码中读取一些资源文件(比如图片,音乐,文本等等),在集成环境(Eclipse)中运行的时候没有问题.但当打包成一个可执行的jar包(将资源文件一并打包)以后,这些资源文件找不到,如下代码: Jav ...

  8. (转)java 从jar包中读取资源文件

    (转)java 从jar包中读取资源文件 博客分类: java   源自:http://blog.csdn.net/b_h_l/article/details/7767829 在代码中读取一些资源文件 ...

  9. Java 操作jar包工具类以及如何快速修改Jar包里的文件内容

    需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...

随机推荐

  1. Storm源码阅读之SpoutOutputCollector

    不得不说storm是一个特别棒的实时计算框架.为了对后文理解的方便,先说几个storm中的术语: Topology:拓扑图或者拓扑结构.在storm中它通过消息分组的分式连接Spout和Bolt节点定 ...

  2. linux的文件权限与目录配置<----->第二章

    1.Linux文件属性    [   1  ]                  [   2  ] [    3    ]  [    4    ]  [ 5 ]             [ 6 ] ...

  3. 坏块管理(Bad Block Management,BBM)

    看了很多坏块管理的文章,加上自己的理解,把整个坏块管理做了个总结. 坏块分类 1.出厂坏块 又叫初始坏块,厂商会给点最小有效块值(NVB,mininum number of valid blocks) ...

  4. 五. Java集合概要

    了解了Java内存相关的内容后,现在来简单介绍下Java的集合. Set:不含有重复数据的集合.常用的对象HashSet,TreeSet,LinkedHashSet.HashSet拥有很好的性能,其数 ...

  5. 使用HTML5 FormData对象实现大文件分块上传(断点上传)功能

    FormData是HTML5新增的一个对象,通过FormData对象可以组装一组用 XMLHttpRequest发送请求的键/值对.它可以更灵活方便的发送表单数据,因为可以独立于表单使用.如果你把表单 ...

  6. httpd页面用户访问认证控制

    [root@liubin-pc ~]# yum install -y httpd 客户机地址限制 通过配置Order.Deny from.Allow from 来限制客户机 allow.deny :先 ...

  7. akoj-1055-矩阵乘法

    矩阵乘法 Time Limit:1000MS  Memory Limit:65536K Total Submit:19 Accepted:7 Description 矩阵乘法是线性代数中最基本的运算之 ...

  8. HDU 2094解题报告

    刚学完set,准备做个简单题目实践一下.结果半天都WA. 下面指出WA原因. 方法是这样的,把所有输的赢的都插入a1,输的插入a2: 那么如果最后name1-name2=1,则说明只有他没输过,能判断 ...

  9. SSE图像算法优化系列十:简单的一个肤色检测算法的SSE优化。

    在很多场合需要高效率的肤色检测代码,本人常用的一个C++版本的代码如下所示: void IM_GetRoughSkinRegion(unsigned char *Src, unsigned char ...

  10. SQL SERVER镜像切换

    --SQL SERVER镜像切换 ------------------------------2013/11/30 切换条件   高性能 没有见证服务器的高安全性模式 具有见证服务器的高安全性模式 自 ...