有可能破解。但是破解难度主要是看你最后发布程序的时候的加密工作了。网上有传Android版本的反编译工具,上网上找就能搜到。基本上没有使用谷歌的那些加密的话,那么能看到源代码什么(JAVA)的,而且很清晰。
创新互联是一家专注于成都网站建设、网站设计与策划设计,江达网站建设哪家好?创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:江达等地区。江达做网站价格咨询:028-86922220
遗憾的是,Java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。
从理论上来说,黑客如果有足够的时间,被混淆的代码仍然可能被破解,甚至目前有些人正在研制反混淆的工具。但是从实际情况来看,由于混淆技术的多元化发展,混淆理论的成熟,经过混淆的Java代码还是能够很好地防止反编译。
java中jar包轻易的被反编译是由于java的特性决定的。
1、如果只是为了使用和发布方便,不需要保护java代码,使用这些工具是很好的选择。
2、首先要明确,哪些数据是核心机密数据,不能让普通员工轻易接触到的,即使是研发型公司的代码,也是会划分等级的,要在保证员工的工作效率的前提下,对代码实施保护措施。下面简单谈一下我的看法,讲讲如何防止员工的代码泄露。
3、软件性的源代码加密是指通过软件对源码进行保护的工作。
4、2,研发企业环境比较复杂,如果安装保密的系统怕会影响软件开发环境。
5、这点因为Java是开源的,想达到完全加密,基本是不可能的,因为在反编译的时候,虽然反编译回来的时候可能不是您原来的代码,但是意思是接近的,所以是不行的。
图1隔离Java程序示意图 对Class文件进行加密 为了防止Class文件被直接反编译,许多开发人员将一些关键的Class文件进行加密,例如对注册码、序列号管理相关的类等。
需要可逆,可以选用base64,Unicode,缺点是没有密钥,安全性不高。而我们需要可逆而且采用安全的方式是:对称加密和非堆成加密,我们常用的有AES、DES等单密钥和双密钥的方式。而且是各种语言通用的。
java监视器模式。 一直使用某一对象的锁来保护某状态。线程安全委托。 将类的线程安全性委托给某个或多个线程安全的状态变量。(注意多个时,这些变量必须是彼此独立,且不存在相关联的不变性条件。
我们还为您推荐了一些准则,要开发不受这些静态安全性暴露威胁的、健壮且安全的 Java 应用程序,您应该遵循这些准则。一有合适的时机,我们就提供代码样本(既有暴露的代码也有无暴露的代码)。
通过运行时保护来减少序列化暴露 一个可以监控风险并自动化可重复安全专业知识的系统对于很多企业来说都是很有用的。Java应用程序可以将JVMTI工具嵌入到安全监控系统中,通过插桩的方式将传感器植入到应用程序中。
如何将引用jar包中抛出的异常去掉方法如下,自定义的ClassLoader首先找到加密的类,而后进行解密,最后将解密后的类装载到JVM当中。