java 打包加密_java打包、加密、发布(源代码保护)
如果你是一名java开发者,你应该知道java源文件编译后的class文件是十分轻易就可以反编译的,有很多java反编译工具都可以做到这一点,例如,jad,jd-gui等,所以如果你想保护你的java class文件不被其他人反编译的话,你需要使用一些java加密工具,不过并不是对java代码进行加密,因为加密的java文件是无法编译成可正常运行的class文件的,所以我们只能加密class文件,更专业一点的称谓,应该是说混淆java
class,也就是对class文件进行模糊处理,目的是为了让反编译者无法获取正确的java源代码,而且又不会影响java class文件的使用。
目前有很多工具可以混淆java class,流行的一点大多要收费的,不过有一款开源的混淆工具,也是基于java编写的,十分好用,它就是proguard。因为我们发布java应用程序的时候,都是选择将class文件打包在jar或者war文件,所以proguard支持对jar里的所有class进行混淆,下面是它的使用方法。
1.定义混淆配置文件
proguard使用后缀为.pro的文件作为配置文件,在这个文件里配置需要混淆的jar文件,混淆后输出的jar文件,混淆需要引用的java类库等。下面是一个示例
1
-injars
C:/Program Files/Java/jdk1.6.0_21/bin/retrace.jar
2
-outjars
C:/Program Files/Java/jdk1.6.0_21/bin/retrace-obfuscated.jar
3
-libraryjars
C:/Program Files/Java/jdk1.6.0_21/jre/lib/rt.jar
4
-libraryjars
C:/Program Files/Java/jdk1.6.0_21/bin/proguard.jar
5
-printmapping
proguard.map
6
-verbose
7
-keep
public class *
2.混淆
下载proguard后,解压将lib目录里的proguard.jar文件和pro配置文件复制到java安装目录的bin下,如果你设置了JAVA_HOME,也可以不用复制到该目录下,然后使用以下的命令来进行混淆,假设pro配置文件命名为myconfig.pro
1
java
-jar proguard.jar @myconfig.pro
3.验证
这时你可以使用jd-gui反编译工具来验证一下混淆结果,把混淆前和混淆后的jar拖到jd-gui工具,然后再对比源代码,你就可以知道混淆后反编译得到的与源代码差别很大。更重要的是,你要把混淆后的jar复制到你的项目,看是否还能够正常使用。
java 打包加密_java打包、加密、发布(源代码保护)相关推荐
- java 打包 根目录_java打包
java打包 编译时打包: javac -d "要把包打到哪:盘符或者.(.表示当前目录)" 文件名.java 执行打包的.class文件 java -cp(cp代表临时的环境变量 ...
- java打包维护_java打包详解
from yahh2008的blog: http://www.matrix.org.cn/blog/yahh2008/ 兄弟,对java着迷吗,或者是为了自己的生计,不论怎样都欢迎你进入精彩java ...
- java 打包工具_Java打包Windows安装程序
目前对于开发Windows桌面程序而言,Java Swing并不是最好的选择,但是对于Java/Android程序员来说,Swing是最快上手和最容易熟悉的语言,和Android类似,Swing也提供 ...
- java字符串加密_Java简单加密字符串
1 设计思想 该问题要求输入一个字符串,然后把这个字符串的每一个字符加4,得到新的字符串. 我们设计一个函数,传入参数sring str,首先我们利用String类的方法toCharArray() 把 ...
- java 打包目录_Java打包文件目录问 zip文件
Java打包文件目录问 zip文件. /** * 资源打包下载类 * Created by Ruan Banshu on 2015/4/13. */ public class ZipOpUtil { ...
- java string 加密_java字符串加密解密
java字符串加密解密 try { String test = "123456789@fdj.com"; EncryptionDecryption des = new Encryp ...
- java access 密码_java 连接加密Access2007数据库时,不用输入用户名密码也能连上
java 连接加密Access2007数据库时,不用输入用户名密码也能连上 我用Access2007做了一个加密的数据库,用的是Access本身的功能加密的.双击打开Database2.mdb文件时, ...
- java 打包运行_java 打包与运行
问题1:java -jar xxx.jar,运行jar包没有主属性清单 解决:打开压缩包打开文件夹META-INF,找到MANIFEST.MF文件,增加: Main-Class: hadoop.Hdf ...
- 用java实现字符串的加密_JAVA 字符串加密、密码加密实现方法
在我们的程序设计中,我们经常要加密一些特殊的内容,今天总结了几个简单的加密方法,分享给大家! 如何用java实现字符串简单加密解密?为保证用户信息安全,系统在保存用户信息的时候,务必要将其密码加密保存 ...
- java sha256 实现_JAVA SHA256加密代码实现
//这里对密码进行加密,再存到数据库 String password3=StringEncrypt.Encrypt(password); //SHA256加密算法 public static ...
最新文章
- Ansible5:Ad-hoc常用模块
- python开发的优秀界面-八款常用的 Python GUI 开发框架推荐
- SpringBoot 2.0 + 阿里巴巴 Sentinel 动态限流实战
- Velodyne收购高清地图公司 将研发更安全的ADAS系统
- 【BLE】关于蓝牙的一些学习资料分享
- 批量导入数据到mssql数据库的
- 职业相关课程学习笔记
- java如何让线程等待_如何使Java线程等待另一个线程的输出?
- 2013_warmup
- 关于vertical layout不能水平居中对齐的原因
- 图书管理系统的分析与设计
- 印象笔记导入html笔记,Evernote Importer|印象笔记导入
- Java程序员怎样考察报表工具的开发效率
- OSError: Unable to create file
- python数字转英文_GitHub - Ailln/en2an: 快速转化「英文数字」和「阿拉伯数字」
- strut2框架搭建
- anydesk 自建服务器,AnyDesk使用FRP自建远程桌面连接
- UG NX 12 点集
- R3300L运行CoreELEC, EmuELEC和Armbian
- chromedriver、geckodriver、MicrosoftWebDriver、IEDriverServer和operadriver之间的恩怨纠葛