众所周知 java开发语言提供了很方便的开发平台 而且开发出来的程序很容易在不同的平台上面进行移植 现在越来越多的人使用它开发软件
Java有了它方便的一个方面 但是他同时也带给了开发者一个烦蔽锋恼 这就是保护的办法不多 而且大多数不是很好用 这样自己辛饥并基苦开发出来的程烂谨序很容易被人反编译过来而据为己有
一般情况下 大多数的人都是用混编器(java obfuscator)来把开发出来的程序进行打乱以达到没有办法来反编译观看源代码 但是这种办法在网上很容易找到相关的软件来重新整理 那么这个混编只能控制一些本来也没有办法动您的软件的人 而对于一些掌握工具的人几乎是透明的 还有就是利用硬件加密锁 但大多数公司提供的硬件加密锁只是提供了一些dll的连接或简单的api调用 只要反编译他们 就很容易把一些api调用去掉 这样硬件加密锁也就不起作用了 但是现在到底有没有好的办法呢?
lishixinzhi/Article/program/Java/gj/201311/27444简单的Java加密算法有:
第一种. BASE
Base是网络上最常见的用于传输Bit字节代码的编码方式之一,大家可以查看RFC~RFC,上面有MIME的详细规范。Base编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base来将一个较长的唯一标识符(一般为-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。
第二种. MD
MD即Message-Digest Algorithm (信息-摘要算法),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD的前身有MD、MD和MD。
MD算法具有以下特点:
压缩性:任意长度的数据,算出的MD值长度都是固定的。
容易计算:从原数据计算出MD值很容易。
抗修改性:对原数据进行任何改动,哪怕只修改个字节,所得到的MD值都有很大区别。
弱抗碰撞:已知原数据和其MD值,想找到一个具有相同MD值的数据(即伪造数据)是非常困难的。
强抗碰撞:想找到两个不同的数据,使它们具有相同的MD值,是非常困难的。
MD的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD以外,其中比较有名的还有sha-、RIPEMD以及Haval等。
第三种.SHA
安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于^位的消息,SHA会产生一个位的消息摘要。该算法经过加密专家多年来的发展和改进已日益完善,并被广泛使用。该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。散列函数值可以说是对明文的一种“指纹”或是“摘要”所以对散列值的数字签名就亩高可以视为对此明文的数字签名。
SHA-与MD的比较
因为二者均由MD导出,SHA-和MD彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下几点不同:
对强行攻击的安全性:最显著和最重要的区别是SHA-摘要比MD摘要长 位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD是^数量级的 *** 作,而对SHA-则是^数量级的 *** 作。这样,SHA-对强行攻击有更大的强旦拍度。
对密码分析的安全性:由于MD的设计,易受密码分析的攻击,SHA-显得不易受这样的攻击。
速度:在相同的硬件上,SHA-的运行速度比MD慢。
第四种.HMAC
HMAC(Hash Message Authentication Code,散列消息鉴别码,基于密钥的Hash算法的认证协议。消息鉴别码实现鉴别的原迅迟尺理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证等。
可以使用Virbox Protector Standalone 加壳工具对java的class类进行加密,支持各种开发语言的程序唤穗信加密。可防止代族晌码反编译,更安全,更方便产品简介
Virbox Protector Standalone提供了强大的代码虚拟化、高级混淆与智能压缩技术,保护您的程序免受逆和轮向工程和非法修改。
Virbox Protector Standalone 将被保护的程序代码转换为虚拟机代码,程序运行时,虚拟机将模拟程序执行,进入和离开虚拟机都有高级代码混淆。虚拟机配合代码混淆可以达到很好的保护效果,尤其是开发者的私有逻辑。高级混淆利用花指令和代码非等价变形等技术,将程序的代码,转换成一种功能上等价,但是难于阅读和理解的代码,可充分干扰静态分析。应用程序的解压缩含有动态密码,让一切自动脱壳工具失效,有效的阻止.Net、PE 程序的直接反编译。
特点
多种加密策略:代码虚拟化、高级混淆、智能压缩
性能分析:智能分析引擎,一键分析各个函数模块调用的次数
支持多种开发语言:多种开发语言加壳支持
源码级保护:保护到汇编级别,c#保护IL级别
免费更新:免费版本升级
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)