Java软件加密方法的应用分析
2016-07-10赵旭
二十一世纪人类社会正在逐步进入信息时代,信息技术被应用各个领域,提高了社会生产效率和信息传递及处理水平。JAVA技术是较为常见的软件编程技术,很多应用软件利用JAVA技术开发。AVA技术不仅继承C++核心技术,且改进了C语言中的错误,更增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧,编程速度更快,效率更高,并且Java源代码的编译和在任何无格式的纯文本编辑器下操作。但是,Java软件相对来讲抗反编译和反盗版能力差,需运用各种加密方法,对软件进行加密保护。本文将针对Java软件的加密方法的应用展开研究和分析。
【关键词】Java软件 软件加密 应用分析
JAVA软件开发,语言使用严谨,避免写出结构混乱的程序,这就起到了规范软件结构的作用,能缩短软件开发周期和节省成本,目前JAVA技术已成为计算机软件开发的主流技术。但由于JAVA语言面向对象和编译成中间字节码执行的特点,JAVA软件在抗反编译能力方面比较脆弱,逆向工程方面先天不足,这导致程序容易被破解,利用IDA Pro等反编译工具就能够对其破坏。因此,JAVA软件开发要采取一系列的加密措施,使用加密算法精心设计,保护软件不被攻击和破译。
1 Java软件特点
JAVA技术诞生于一九九五年,初期名字叫做Oak,后更名为JAVA。JAVA技术推出后被广泛应用到Web软件开发中,在Windows操作系统上使用记事本既可进行代码编辑,Linux平台可使用vi工具进行编辑。Java软件特点是:结构简单、面向对象、分布式、解释执行、结构中立、可移植、高效能、具有多线程能力。Java语言删除了一些容易混淆的C++功能,重载对象是函数,而非变量或是运算符。此外,增加了自动内存收集功能,能让软件运行速度更快。并且Java软件能在一些独立的小型机器上顺利执行,其基本解释器和对象类支持仅占40KB空间,而若增加基本的标准程序库和线程支持则需增加约175KB。但相比传统软件依然体积非常小,所以使用方便,易于下载。并且Java是面向对象的语言,明确了接口定义,允许开发人员建立可重复使用的软件部件。此外,Java软件是解释执行,移植方便,任何已移植软件解释器的机器上都能执行Java字节代码。这就使得一些破解者,可以趁虚而入,利用IDA Pro等相关反编译工具,攻击和破译软件。单纯使用Java语言编译的软件,自我防御能力差,易被破解。想要保证软件安全,必须进行有效加密,以克服Java软件抗破解脆弱的问题。
2 Java软件的加密方法的应用
通过前文对Java软件特点的分析,不难看出对Java软件进行加密的重要性和必要性。为了避免Java软件受到攻击和破译,采取加密措施具有重要意义。下面分析Java软件加密方法的应用:
2.1 BASE
BASE是典型对称加密算法,该技术已十分成熟,属于一种属于编码格式的加密方法,是目前最为常用的加密方式,能对Bit字节代码进行加密,能对HTTP环境下的信息进行标识加密,使编码数据不会被人用肉眼所直接看到。例如,在Java Persistence系统Hibernate中加密方式,就是利用Base将唯一标识符编码加密,使其无法被直接读取。
2.2 MD
MD加密方法是当前最为广泛使用的杂凑算法之一,加密效果好,且对于保证传输数据的完整性有着显著效果,很多主流软件都利用了MD加密方式。MD在JAVA中的应用能生成与软件相互对应的固定长度的MD值,在使用中需要验证MD值是否一致。并且MD加密方式下,数据运算中任意长度数据,算出的MD值长度都是固定的,且区别性很大,字符串多,和原始数据有关联,所以一旦对原始数据进行修改,MD值都会发生明显变化,具有较强的抗修改性,并且想要伪造MD值数据,获取原数据的MD值也非常困难。在JAVA中的应用,可用于大数据数字前面软件签署秘钥,非常值得推广和应用。
2.3 SHA
SHA加密安全性和稳定性好,主要适用于数字签名标准里面定义的数字签名算法。该加密方式被需要加密专家研究并完善,其技术已非常成熟,被广泛应用。SHA是生成个位的信息摘要明文,然后在以不可逆的方式将其转为为一段密文,而想要读取数据就要取得一串输入码,进行密文的验证。并且这种加密方式中,生成的密文长度较短、位数固定、管理方便,且不易破解,能大大提高软件安全性。SHA加密方式与MD值有一定相似性,但有着也有着较大区别,SHA信息摘要比MD摘要长,SHA抗攻击能力更强,破解难度是MD指数级的操作,并且SHA密文难以被分析,所以不易遭受密码分析攻击。
3 结束语
Java语言是目前较为常用的软件开发语言,编程相对简单,软件开发周期短,成本低。并且Java软件性能好,运行速度快,易于移植,且体积小,使用方面。但由于Java语言的特点,导致Java软件易于破解及遭受到攻击。为了保证Java软件安全性必须采取必要的加密措施,利用多种加密方法,对软件进行加密保护。
参考文献
[1]杨轩.高级数据加密标准AES的Java实现与应用研究[D].南京信息工程大学,2013,11:118.
[2]霍建雷.用于Java软件保护的代码混淆技术研究与实现[D].西北大学,2014,28:191.
[3]王劲东.目基于高级数据加密标准AES的数据库加密技术研究与实现[D].西安电子科技大学,2013,12:122-124.
作者简介
赵旭(1984-),男,天津市人。硕士研究生学历。现为天津中德应用技术大学讲师。研究方向为计算机软件技术。
作者单位
天津中德应用技术大学 天津市 300350