[发明专利]一种Springboot程序加密和解密的装置及方法有效
申请号: | 201910352216.7 | 申请日: | 2019-04-26 |
公开(公告)号: | CN110069905B | 公开(公告)日: | 2021-03-23 |
发明(设计)人: | 杨毅;张力强;袁挺 | 申请(专利权)人: | 深圳智慧园区信息技术有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F21/60 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518116 广东省深圳市龙岗区坂田*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 springboot 程序 加密 解密 装置 方法 | ||
本发明公开了一种Springboot程序的加密装置、解密装置、加密方法和解密方法,加密装置包括有秘钥获取模块、代码获取模块、加密模块和重打包模块;解密装置是源代码经过混淆后再编译得到的字节码文件,包括有:密文获取模块、解密模块和加载模块,内嵌于Springboot程序的引导文件内。加密装置通过RSA非对称加密方法根据已生成的私钥对待加密字节码文件进行加密,将Java字节码文件加密为不可反编译的文件,解密装置通过公钥用于对已加密的Springboot程序解密,用户在想要反编译字节码文件获取源代码时会发现不能破解,解决了现有Springboot程序源代码的防泄密方法安全性较差的问题,并能防止Java反编译工具对其进行破解,解密装置也通过代码混淆实现了对解密装置的保护。
技术领域
本发明属于计算机技术领域,具体涉及一种Springboot程序的加密和解密的装置及方法。
背景技术
Java编写的程序源代码经过Java编译器编译生成Java字节码(.class文件)用来在Java虚拟机上运行。Java字节码独立于计算机硬件以及操作系统,是Java能跨平台运行的基础。然而Java字节码中包含大量的源码信息,例如:源文件名、行号、字段名、方法名、参数名和变量名等。这导致Java字节码文件非常容易被反编译,从而获得程序的全部源代码。目前市面上有jd-gui等许多可以用来反编译的软件。
为了防止反编译一般有代码混淆以及代码加密两种方式。
代码混淆是指将计算机程序的代码转换成一种功能上等价,但是难于阅读和理解的形式的行为。将代码中的各种元素,如变量、函数、类的名字改写成无意义胡名字,使得阅读的人无法根据名字猜测其用途。还可以重写代码中的部分逻辑,将其变成功能上等价,但是更难以理解的形式,打乱代码的格式。但是基于spring框架的java代码由于使用了spring的依赖注入以及面向切面编程特性,变量、函数、类的名字无法自由更改,这使得代码混淆效果很差,无法有效防止他人获取自己程序的源代码。
代码加密是通过加密算法,将字节码文件转换成另一种文件,由于被修改了文件格式,反编译软件无法再将其转化为源代码,但加密后的文件也无法被Java虚拟机运行。这时就需要在运行时使用classloader命令,指定一个自己开发的文件加载器,将加密后的文件解密后再装入虚拟机中运行。但目前市面上的代码加密都是针对单个class文件,springboot程序由于有其特有的文件加载方法,使用市面上的加密工具无法对springboot程序加密。
springboot程序未经加密,按正常步骤对springboot程序进行编译打包,生成jar文件包,此时得到的jar文件包非常容易被破解。
JavaDecompiler是一种市场上常见的Java反编译工具,使用JavaDecompiler对jar文件进行反编译,效果如图1所示。图2为源代码,对比图1和图2,即将经JavaDecompiler反编译所得到的效果图和源代码进行对比,会发现除了注释在反编译时被去除了,其它信息都是可见的,源代码绝大部分信息都被反编译了,甚至代码在文件中的哪一行都是清晰可见的。
由此可见,如果没有合适的加密工具对springboot程序加密,非常不利于保护新开发的软件或程序,不利于保护开发者的合法利益,会降低开发者的积极性和创造性;从长远来看,会扰乱市场的正常秩序,不利于行业的良性发展。
发明内容
本发明提供一种Springboot程序的加密和解密的装置及方法,通过非对称加密方法对待加密字节码文件进行加密,将Java字节码文件加密为不可反编译的文件,用户在想要反编译字节码文件获取源代码时会发现不能破解,实现了对Springboot程序源代码的保护,解决了现有Springboot程序源代码的防泄密方法安全性较差的问题。本发明技术方案如下:
Springboot程序的加密装置,包括有:秘钥获取模块、代码获取模块、加密模块和重打包模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳智慧园区信息技术有限公司,未经深圳智慧园区信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910352216.7/2.html,转载请声明来源钻瓜专利网。