问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

【转】如何保护Java代码

发布网友 发布时间:2022-04-21 04:23

我来回答

2个回答

热心网友 时间:2022-06-17 23:21

以下从技术角度就常见的保护措施 和常用工具来看看如何有效保护java代码:1. 将java包装成exe特点:将jar包装成可执行文件,便于使用,但对java程序没有任何保护。不要以为生成了exe就和普通可执行文件效果一样了。这些包装成exe的程序运行时都会将jar文件释放到临时目录,很容易获取。常用的工具有exe4j、jsmooth、NativeJ等等。jsmooth生成的exe运行时临时目录在exe所在目录中或是用户临时目录 中;exe4j生成的exe运行时临时目录在用户临时目录中;NativeJ生成的exe直接用winrar打开,然后用zip格式修复成一个jar文件,就得到了原文件。如果只是为了使用和发布方便,不需要保护java代码,使用这些工具是很好的选择。2. java混淆器特点:使用一种或多种处理方式将class文件、java源代码进行混淆处理后生成新的class,使混淆后的代码不易被反编译,而反编译后的代码难以阅 读和理解。这类混淆器工具很多,而且也很有成效。缺点:虽然混淆的代码反编译后不易读懂,但对于有经验的人或是多花些时间,还是能找到或计算出你代码中隐藏的敏感内容,而且在很多应用中不是全部代码都能混淆的,往往一些关键的库、类名、方法名、变量名等因使用要求的*反而还不能混淆。3. 隔离java程序到服务端特点:把java程序放到服务端,让用户不能访问到class文件和相关配套文件,客户端只通过接口访问。这种方式在客户/服务模式的应用中能较好地保护java代码。缺点是:必须是客户/服务模式,这种特点*了此种方式的使用范围;客户端因为逻辑的暴露始终是较为薄弱的环节,所以访问接口时一般都需要安全性认证。4. java加密保护特点:自定义ClassLoader,将class文件和相关文件加密,运行时由此ClassLoader解密相关文件并装载类,要起到保护作用必须自定 义本地代码执行器将自定义ClassLoader和加密解密的相关类和配套文件也保护起来。此种方式能很有效地保护java代码。缺点:可以通过替换JRE包中与类装载相关的java类或虚拟机动态库截获java字节码。 jar2exe属于这类工具。5. 提前编译技术(AOT)特点:将java代码静态编译成本地机器码,脱离通用JRE。此种方式能够非常有效地保护java代码,且程序启动比通用JVM快一点。具有代表性的是GNU的gcj,可以做到对java代码完全提前编译,但gcj存在诸多局限性,如:对JRE 5不能完整支持、不支持JRE 6及以后的版本。由于java平台的复杂性,做到能及时支持最新java版本和JRE的完全提前编译是非常困难的,所以这类工具往往采取灵活方式,该用即时编译的地方还是 要用,成为提前编译和即时编译的混合体。缺点:由于与通用JRE的差异和java运用中的复杂性,并非java程序中的所有jar都能得到完全的保护;只能使用此种工具提供的一个运行环境,如果工具更新滞后或你需要特定版本的JRE,有可能得不到此种工具的支持。 Excelsior JET属于这类工具。6. 使用jni方式保护特点:将敏感的方法和数据通过jni方式处理。此种方式和“隔离java程序到服务端”有些类似,可以看作把需要保护的代码和数据“隔离”到动态库中,不同的是可以在单机程序中运用。缺点和上述“隔离java程序到服务端”类似。7. 不脱离JRE的综合方式保护特点:非提前编译,不脱离JRE,采用多种软保护方式,从多方面防止java程序被窃取。此种方式由于采取了多种保护措施,比如自定义执行器和装载器、加密、JNI、安全性检测、生成可执行文件等等,使保护力度大大增强,同样能够非常有效地保护java代码。缺点:由于jar文件存在方式的改变和java运用中的复杂性,并非java程序中的所有jar都能得到完全的保护;很有可能并不支持所有的JRE版本。 JXMaker属于此类工具。8. 用加密锁硬件保护特点:使用与硬件相关的专用程序将java虚拟机启动程序加壳,将虚拟机配套文件和java程序加密,启动的是加壳程序,由加壳程序建立一个与硬件相关的 受保护的运行环境,为了加强安全性可以和加密锁内植入的程序互动。此种方式与以上“不脱离JRE的综合方式保护”相似,只是使用了专用硬件设备,也能很好地保护java代码。缺点:有人认为加密锁用户使用上不太方便,且每个安装需要附带一个。从以上描述中我们可以看出:1. 各种保护方式都有其优缺点,应根据实际选用2. 要更好地保护java代码应该使用综合的保护措施3. 单机环境中要真正有效保护java代码,必须要有本地代码程序配合当然,安全都是相对的,一方面看你的保护措施和使用的工具能达到的程度,一方面看黑客的意愿和能力,不能只从技术上保护知识产权。总之,在java 代码保护方面可以采取各种可能的方式,不可拘泥于那些条条框框。

热心网友 时间:2022-06-17 23:21

方法一:将java代码编译为class文件,进行保存。因为java编译具有不可逆性,所以此时别人是没法更改的。
方法二:将java代码生成jar包、war包等包的形式进行存储,此方法也是根据编译的不可逆性来进行的保护。
方法三:可以将代码保存到svn服务器,这个办法可以记录所有的java变更,有效的保存版本信息。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 自定义classloader 加密 怎么破解class 我手头有一个web系统,很多java class类都是加密的,是用classloader.dll加载 如何覆写URLClassLoader 动态解密des加密过的jar包 excel只清除数字不清除公式 excel表格怎么只清除表格里的数字而不清除公式啊? excel怎么做能只删除单元格显示数值,而不删除公式 Excel中,可以只删除数值而不删除公式吗? 怎样在excel表格中只删除数字不删除公式 怎么把EXCEL表格里的内容删除而不改变其中的公式呢? excel如何删除数据而不删除公式求解 EXCEL表格怎么清除数字不清除公式 excel怎样只删除格内内容而不删除公式 怎样做才不会删除EXCEL表中公式,只删除数据? EXCEL中如何使公式不被删除,删除单元格中的数却不取消公式 excel中如何可以在删除单元格内容的时候,不删除公式? EXECL中如何能做到清除内容而不清除公式 如何让excel表格中的公式不被删除 Excel如何清除内容而不清除公式 Excel如何实现删除内容而不删除公式 apk如何防止被破解 如何有效的防止Java程序被反编译和破解 如何在eclipse上创建一个web项目 关于继承与classloader的类啥时执行 如何隐藏自己制作的jar下的核心代码 怎么能让spring框架加载加密后的.class文件 ros中classloader动态加载的对象是什么时候编译的 java.util.zip.ZipException这个问题怎么解决? 为什么要自定义classloader 如何防止程序员反编译? javaclass类加密后 如何部署到tomcat 如何获取jar文件中的函数 如何利用DES加密的算法保护Java源代码 红米note7pro怎样预约flyme8尝鲜版 魅族系统flyme多长时间更新一次? 魅族flyme系统4.2.3几时推送 苹果手机怎么设置个别电话打不进来 360浏览器怎么打印预览 汤姆索亚历险记的读书笔记该怎么写呀?要求摘抄及感悟 汤姆索亚历险记读书笔记怎么写?