CN110069905B - 一种Springboot程序加密和解密的装置及方法 - Google Patents
一种Springboot程序加密和解密的装置及方法 Download PDFInfo
- Publication number
- CN110069905B CN110069905B CN201910352216.7A CN201910352216A CN110069905B CN 110069905 B CN110069905 B CN 110069905B CN 201910352216 A CN201910352216 A CN 201910352216A CN 110069905 B CN110069905 B CN 110069905B
- Authority
- CN
- China
- Prior art keywords
- file
- springboot
- encrypted
- byte code
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000004806 packaging method and process Methods 0.000 claims description 13
- 238000012857 repacking Methods 0.000 abstract description 5
- 238000011068 loading method Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 4
- 238000005336 cracking Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Abstract
本发明公开了一种Springboot程序的加密装置、解密装置、加密方法和解密方法,加密装置包括有秘钥获取模块、代码获取模块、加密模块和重打包模块;解密装置是源代码经过混淆后再编译得到的字节码文件,包括有:密文获取模块、解密模块和加载模块,内嵌于Springboot程序的引导文件内。加密装置通过RSA非对称加密方法根据已生成的私钥对待加密字节码文件进行加密,将Java字节码文件加密为不可反编译的文件,解密装置通过公钥用于对已加密的Springboot程序解密,用户在想要反编译字节码文件获取源代码时会发现不能破解,解决了现有Springboot程序源代码的防泄密方法安全性较差的问题,并能防止Java反编译工具对其进行破解,解密装置也通过代码混淆实现了对解密装置的保护。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种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程序的加密装置,包括有:秘钥获取模块、代码获取模块、加密模块和重打包模块;
秘钥获取模块:用第三方工具生成用于进行非对称加密的秘钥对,秘钥对包括私钥和公钥,私钥由开发者保管,公钥放入Springboot程序jar文件包中;
代码获取模块:解压jar文件包,通过解析文件夹或读取待加密的字节码文件列表找到其中需要进行加密的目标代码字节码文件;
加密模块:使用RSA非对称加密方法根据已生成的私钥对代码获取模块中获取得到的待加密字节码文件进行加密,得到对应加密后的字节码文件,将加密后的字节码文件标志为是已加密的字节码文件;
重打包模块,将加密后的字节码文件和修改后的springboot引导文件重新组织打包为一个可以执行的Springboot程序的jar文件包。
Springboot程序的解密装置,是源代码经过混淆后再编译得到的字节码文件,包括有:密文获取模块、解密模块和加载模块;
密文获取模块,用于获取待运行Springboot程序中已加密的字节码;
解密模块,根据公钥对密文获取模块获取到的待解密字节码文件进行解密,得到对应的字节码文件明文;
加载模块,将解密后的字节码文件明文内容加载到Java虚拟机中运行。
Springboot程序的解密装置,优选内嵌于Springboot程序的引导文件内。
加密装置用于对Springboot程序加密,Springboot程序的加密方法包括有:
(1)修改springboot引导文件,修改了springboot引导文件中的LaunchedURLClassLoader类,修改其中的loadClass方法;
(2)用第三方工具生成用于进行非对称加密的秘钥对,秘钥对包括私钥和公钥,私钥由开发者保管,公钥放入Springboot引导文件内;
(3)正常打包springboot程序,获得jar文件包;
(4)解压jar文件包,通过解析文件夹或读取待加密的字节码文件列表找到其中需要进行加密的目标代码字节码文件;
(5)获取待加密的字节码文件,获取对待加密字节码文件进行加密的私钥,根据待加密字节码文件的字节顺序从目标代码中获取当前待加密字节,使用RSA非对称加密方法用已生成的私钥对获取得到的待加密字节进行加密,将得到的各个字节密文进行组合,得到对应加密后的字节码文件,将加密后的字节码文件标志为是已加密的字节码文件;
(6)将修改后的springboot引导文件替换掉原springboot引导文件,将已加密的字节码文件替换掉原未加密的字节码文件,将加密后的字节码文件和修改后的springboot引导文件重新组织打包为一个可以执行的Springboot程序的jar文件包。
优选在加密后的字节码文件头部增加加密标志以示为已加密的字节码文件。
解密装置用于对已加密的Springboot程序解密,Springboot程序的解密方法包括有:
(1)Springboot程序启动时自动扫描jar文件包中的字节码文件,依据加密标志来识别出已加密的字节码文件,获取待运行Springboot程序中已加密的字节码文件;
(2)获取对所述目标代码进行解密的公钥,判断加密的字节码文件密文前是否有已加密标志,从已加密的字节码文件中根据代码密文的字节顺序从代码密文中获取当前待解密字节,根据公钥对当前待解密字节进行解密,得到对应的当前字节明文;返回根据代码密文的字节顺序从代码密文中获取当前待解密字节,将得到的各个字节明文进行组合,得到字节码文件密文对应的目标代码;
(3)将解密模块解密后的字节码文件内容加载到Java虚拟机中运行。
Springboot程序的加密和解密方法,加密装置对Springboot程序加密后,启动时,解密装置自动对加密的Springboot程序解密,解密后的文件加载到Java虚拟机中,Springboot程序正常运行。Springboot程序中加密的字节码文件经解密后优选存放在计算机内存中,由操作系统保证其安全。
本发明的有益效果为:本发明技术包括有加密装置和解密装置,加密装置通过RSA非对称加密方法对待加密字节码文件进行加密,解密装置是源代码经过混淆处理后再编译得到的字节码文件,解密装置以及解密用的公钥是内嵌在Springboot引导文件内,Springboot程序启动时解密自动进行,加密后普通用户感知不到代码已加密,实现了对Springboot程序源代码的保护,并能防止Java反编译工具对其进行破解,解密装置也通过代码混淆实现了对解密装置的保护。
附图说明
图1是现有技术中未加密的Springboot程序被JavaDecompiler反编译的局部效果图。
图2是Springboot程序的局部源代码。
图3是Springboot程序的加密和运行流程图。
图4是经加密的Springboot程序按照常规方式运行程序的局部效果图。
图5是经加密的Springboot程序被JavaDecompiler反编译的局部效果图。
具体实施方式
下面结合实施例,对本发明作进一步地描述。
Springboot程序包括有字节码文件、引导文件和其他必要的文件。
Springboot程序的加密装置,由开发者管理,包括有:秘钥获取模块、代码获取模块、加密模块和重打包模块。
秘钥获取模块:用第三方工具生成用于进行非对称加密的秘钥对,秘钥对包括私钥和公钥:私钥由开发者保管;公钥放入Springboot程序jar文件包中比较隐藏的文件夹中,以增加破解难度。
代码获取模块:解压jar文件包,通过解析文件夹或待加密的字节码文件列表找到其中需要进行加密的目标代码字节码文件,并不是所有的字节码文件需要进行加密,需要加密的字节码文件通常为业务代码或配置的需要加密的字节码文件。
加密模块:使用RSA非对称加密方法根据已生成的私钥对代码获取模块中获取得到的待加密字节码文件进行加密,得到对应加密后的字节码文件,将加密后的字节码文件加密标志为是已加密的字节码文件。
重打包模块:将加密后的字节码文件和修改后的springboot引导文件重新组织打包为一个可以执行的Springboot的jar文件包。
Springboot程序的加密方法,包括:
(1)修改springboot引导文件,修改了springboot引导文件中的LaunchedURLClassLoader类,修改其中的loadClass方法;
(2)用第三方工具ssh-keygen生成用于进行非对称加密的秘钥对,秘钥对包括私钥和公钥;
(3)私钥由开发者保管,公钥放入Springboot程序jar文件包;正常打包springboot程序,获得jar文件包;
(4)解压jar文件包,通过解析文件夹或读取待加密的字节码文件列表找到其中需要进行加密的目标代码字节码文件;
(5)获取待加密的字节码文件,获取对待加密字节码文件进行加密的加密密钥,加密密钥是RSA非对称加密的私钥,根据待加密字节码文件的字节顺序从目标代码中获取当前待加密字节,用已生成的私钥对获取得到的待加密字节进行加密,将得到的各个字节密文进行组合,得到对应加密后的字节码文件,在加密后的字节码文件头部增加加密标志以示为已加密的字节码文件,加密后的字节码文件头部的加密标志是“wiseyq”。
(6)将修改后的springboot引导文件替换掉原springboot引导文件,将已加密的字节码文件替换掉原未加密的字节码文件,将加密后的字节码文件和修改后的springboot引导文件重新组织打包为一个可以执行的Springboot程序的jar文件包。
Springboot程序的解密装置,内嵌于Springboot程序的引导文件内,是源代码经过混淆后再编译得到的字节码文件,包括有:密文获取模块、解密模块和加载模块。
密文获取模块,用于获取待运行Springboot程序中已加密的字节码文件。
解密模块,根据公钥对密文获取模块获取到的待解密字节码文件进行解密,得到对应的字节码文件明文。
加载模块,将解密模块解密后的字节码文件明文内容加载到Java虚拟机中运行。
Springboot jar程序的解密方法,包括:
(1)Springboot程序启动时自动扫描jar文件包中的字节码文件,Springboot程序扫描字节码文件时读取字节码文件的文件头部,判断字节码文件是否经过加密;如果扫描出字节码文件的文件头部有“wiseyq”,则表示经过加密,如果字节码文件的文件头部没有扫描出“wiseyq”,则表示没有经过加密;识别出已加密的字节码文件,获取待运行Springboot程序中已加密的字节码文件的内容,留待解密模块作下一步地处理;
(2)获取对所述目标代码进行解密的解密密钥,解密密钥是RSA非对称加密的公钥,判断加密的字节码文件密文前是否有已加密标志,从已加密的字节码文件中根据代码密文的字节顺序从代码密文中获取当前待解密字节,根据公钥对当前待解密字节进行解密,得到对应的当前字节明文;返回根据代码密文的字节顺序从代码密文中获取当前待解密字节,将得到的各个字节明文进行组合,得到字节码文件密文对应的目标代码;解密后的内容不会保存到硬盘中,而是放在计算机内存中,由操作系统保证其安全,用户无法获取解密后的内容;
(3)由于springboot引导文件经过修改,修改前springboot引导文件有一个LaunchedURLClassLoader类,该类继承了java原生的URLClassLoader类,其中通过loadClass方法,直接通过带包名的类名称,从springboot程序中找到class文件,再直接将文件内容加载到java虚拟机中;修改后,修改了springboot引导文件中的LaunchedURLClassLoader类,修改其中的loadClass方法,这样就不再直接读取字节码文件,而是先根据包结构找到字节码文件所在文件夹,再使用解密模块解密字节码文件到内存,再从内存中将解密后的内容加载到java虚拟机中。
所以,加载模块修改了Springboot程序的加载Java字节码文件的方式,现有技术的加载方式是直接将字节码文件加载到Java虚拟机中运行,而本技术是Springboot引导文件经过修改后能将解密后的字节码文件内容加载到Java虚拟机中运行。
实施例1
对Springboot程序进行加密和用常规方式启动运行的具体步骤如下:
(1)修改springboot引导文件,修改了springboot引导文件中的LaunchedURLClassLoader类,修改其中的loadClass方法;
(1)用第三方工具ssh-keygen生成私钥和公钥,私钥由开发者保管,公钥放入Springboot程序中;正常打包springboot程序,获得jar文件包;
(2)解压上一步获得的jar文件包;
(3)使用私钥对字节码文件进行加密;
(4)将修改后的springboot引导文件替换掉原springboot引导文件,修改后的springboot引导文件有解密功能;将已加密的字节码文件替换掉原未加密的字节码文件;
(5)将加密后的字节码文件和修改后的springboot引导文件重新组织打包为一个可以执行的Springboot程序的jar文件包;
(6)使用常规方式启动程序并运行,启动的过程中,解密装置自动获取待运行Springboot程序中已加密的字节码,之后公钥对密文进行解密得到对应的字节码明文,解密后的字节码文件明文加载到Java虚拟机中运行。
运行效果如图4所示,从中可以看出,加密的字节码文件被解密并加载到Java虚拟机中,Springboot程序正常运行。
由本实施例可知,通过非对称加密对待加密字节码文件进行加密,解密装置是源代码经过混淆处理后再编译得到的文件。加密装置和解密装置分开保管,加密装置和加密用的私钥由开发者自行保管,解密装置以及解密用的公钥是内嵌在springboot引导文件内,加密后的springboot程序启动时解密自动进行,加密后普通用户感知不到springboot程序已加密,实现了对Springboot程序源代码的保护,解密装置也通过代码混淆实现了对解密装置的保护。
实施例2
将Springboot程序加密,再运用市场上常见的Java反编译工具JavaDecompiler对其进行破解,步骤如下:
(1)修改springboot引导文件,修改了springboot引导文件中的LaunchedURLClassLoader类,修改其中的loadClass方法,springboot引导文件经过修改后才能读取已加密的字节码文件并将其解密;
(2)用第三方工具ssh-keygen生成私钥和公钥,私钥由开发者保管,公钥放入Springboot程序中;正常打包springboot程序,获得jar文件包;
(2)解压上一步获得的jar文件包;
(3)使用私钥对字节码文件进行加密;
(4)将修改后的springboot引导文件替换掉原springboot引导文件,修改后的springboot引导文件有解密功能;将已加密的字节码文件替换掉原未加密的字节码文件;
(5)将加密后的字节码文件和修改后的springboot引导文件重新组织打包为一个可以执行的Springboot程序的jar文件包;
(6)使用JavaDecompiler对加密后的jar文件包进行破解,效果如图5所示。
按正常步骤对未经加密的springboot程序进行打包,生成jar文件包,再使用JavaDecompiler对jar文件包进行反编译,效果如图1所示。而将Springboot程序加密并重新打包为jar文件包,再运用Java反编译工具JavaDecompiler对其进行破解,效果如图5所示。
图5与图1相比,可发现,文件名及目录是相同的、没有作改变,对同一文件进行反编译会发现已经无法被反编译,提示INTERNAL ERROR.因为文件内容已不是JavaDecompiler能识别的格式。而图1却出现了与源代码绝大部分相同的信息,源代码信息如图2所示。
由此可发现,本实施例解决了现有Springboot程序源代码的防泄密方法安全性较差的问题,通过非对称加密对字节码文件进行加密,通过代码混淆对解密装置进行处理,可以防止Java反编译工具分析本发明的加密方法,并防止Java反编译工具对其进行破解。
Claims (2)
1.一种Springboot程序的加密方法,其特征在于,加密装置用于对Springboot程序加密,所述加密方法包括:
(1)修改springboot引导文件,修改了springboot引导文件中的LaunchedURLClassLoader类,修改其中的loadClass方法;
(2)用第三方工具生成用于进行非对称加密的秘钥对,秘钥对包括私钥和公钥,私钥由开发者保管,公钥放入Springboot引导文件内;
(3)正常打包springboot程序,获得jar文件包;
(4)解压jar文件包,通过解析文件夹或读取待加密的字节码文件列表找到其中需要进行加密的目标代码字节码文件;
(5)获取待加密的字节码文件,获取对待加密字节码文件进行加密的私钥,根据待加密字节码文件的字节顺序从目标代码中获取当前待加密字节,使用RSA非对称加密方法用已生成的私钥对获取得到的待加密字节进行加密,将得到的各个字节密文进行组合,得到对应加密后的字节码文件,将加密后的字节码文件标志为是已加密的字节码文件,在已加密的字码的头部设有加密标志;
(6)将修改后的springboot引导文件替换掉原springboot引导文件,将已加密的字节码文件替换掉原未加密的字节码文件,将加密后的字节码文件和修改后的springboot引导文件重新组织打包为一个可以执行的Springboot程序的jar文件包。
2.根据权利要求1所述的一种Springboot程序的加密方法,其特征在于,在加密后的字节码文件头部增加加密标志以示为已加密的字节码文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910352216.7A CN110069905B (zh) | 2019-04-26 | 2019-04-26 | 一种Springboot程序加密和解密的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910352216.7A CN110069905B (zh) | 2019-04-26 | 2019-04-26 | 一种Springboot程序加密和解密的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110069905A CN110069905A (zh) | 2019-07-30 |
CN110069905B true CN110069905B (zh) | 2021-03-23 |
Family
ID=67369408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910352216.7A Active CN110069905B (zh) | 2019-04-26 | 2019-04-26 | 一种Springboot程序加密和解密的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069905B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110717150A (zh) * | 2019-10-08 | 2020-01-21 | 北京顶象技术有限公司 | 代码保护方法、装置、保护设备及可读存储介质 |
CN111078224A (zh) * | 2019-10-12 | 2020-04-28 | 中国平安人寿保险股份有限公司 | 软件包文件数据处理方法、装置、计算机设备及存储介质 |
CN110855433B (zh) * | 2019-11-07 | 2023-06-16 | 深圳市信联征信有限公司 | 基于加密算法的数据加密方法、装置及计算机设备 |
CN110990019B (zh) * | 2019-11-20 | 2023-05-02 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种Java类分析方法、装置、存储介质及电子设备 |
CN111159757A (zh) * | 2019-12-18 | 2020-05-15 | 成都烽创科技有限公司 | 文件加密方法、解密方法及相应装置 |
CN113055152B (zh) * | 2019-12-26 | 2022-10-18 | 郑珂威 | 基于完全同态加密技术的中间代码加密方法及密文虚拟机系统 |
CN111367505A (zh) * | 2020-03-02 | 2020-07-03 | 广州致远电子有限公司 | 一种JavaScript源代码保密方法、装置、设备及存储介质 |
CN113378211B (zh) * | 2020-03-10 | 2022-05-20 | 百度在线网络技术(北京)有限公司 | 用于保护数据的方法和装置 |
CN111914225B (zh) * | 2020-07-15 | 2024-03-19 | 广东电网有限责任公司 | 一种源代码保护系统及源代码加密方法 |
CN111967032B (zh) * | 2020-08-27 | 2023-08-25 | 长城计算机软件与系统有限公司 | 基于混淆处理的文件加密方法及解密方法 |
CN112199645A (zh) * | 2020-10-16 | 2021-01-08 | 国能日新科技股份有限公司 | 基于Springboot的Jar包加密方法及装置 |
CN112613071A (zh) * | 2020-12-25 | 2021-04-06 | 武汉市多比特信息科技有限公司 | 一种文件的加密方法、装置及存储介质 |
CN113360181A (zh) * | 2021-05-20 | 2021-09-07 | 武汉虹旭信息技术有限责任公司 | 用于工业互联网的代码调用方法及装置 |
CN113221077B (zh) * | 2021-05-31 | 2023-11-14 | 平安科技(深圳)有限公司 | 基于spring容器的class文件加密方法及设备 |
CN113553553A (zh) * | 2021-07-26 | 2021-10-26 | 平安消费金融有限公司 | 一种防止反编译方法、装置、计算机设备及存储介质 |
WO2023019443A1 (zh) * | 2021-08-17 | 2023-02-23 | 西门子(中国)有限公司 | 一种保护源代码的方法、装置和计算机可读存储介质 |
CN114943062B (zh) * | 2022-05-20 | 2023-06-16 | 中电金信软件有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN115114595A (zh) * | 2022-08-29 | 2022-09-27 | 北京中安星云软件技术有限公司 | 一种基于JNI运行Java加密jar包的方法及系统 |
CN116149790B (zh) * | 2023-02-15 | 2023-11-21 | 北京景安云信科技有限公司 | 一种基于减少JVM进程启动多个Springboot项目的方法 |
CN116662941B (zh) * | 2023-07-31 | 2023-12-26 | 腾讯科技(深圳)有限公司 | 信息加密方法、装置、计算机设备和存储介质 |
CN116896444B (zh) * | 2023-09-11 | 2023-12-15 | 武汉吧哒科技股份有限公司 | 文件包管理方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1124183A1 (en) * | 2000-02-10 | 2001-08-16 | S.A. Solventas | Method for managing globally distributed software components |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335151A (zh) * | 2014-08-14 | 2016-02-17 | 优视科技有限公司 | 安装文件的保护方法及装置 |
CN105760765B (zh) * | 2016-02-04 | 2019-03-26 | 北京致远互联软件股份有限公司 | 数据加密方法、装置及数据解密方法、装置 |
CN107480478B (zh) * | 2017-08-14 | 2019-08-13 | 钟尚亮 | 一种java应用程序的加密方法及运行方法 |
CN108390759A (zh) * | 2018-03-21 | 2018-08-10 | 平安普惠企业管理有限公司 | 代码加密、解密方法、装置、计算机设备和存储介质 |
CN108563927A (zh) * | 2018-04-26 | 2018-09-21 | 惠州市德赛西威汽车电子股份有限公司 | 一种主机升级软件的打包加密方法 |
CN109598106A (zh) * | 2018-12-05 | 2019-04-09 | 国能日新科技股份有限公司 | 企业级bs应用保护方法、装置与电子设备 |
-
2019
- 2019-04-26 CN CN201910352216.7A patent/CN110069905B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1124183A1 (en) * | 2000-02-10 | 2001-08-16 | S.A. Solventas | Method for managing globally distributed software components |
Also Published As
Publication number | Publication date |
---|---|
CN110069905A (zh) | 2019-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110069905B (zh) | 一种Springboot程序加密和解密的装置及方法 | |
US8381307B2 (en) | Method for protecting a converted applet (CAP) file including encrypting the CAP file | |
KR102433011B1 (ko) | Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체 | |
KR101597251B1 (ko) | 소프트웨어 애플리케이션들의 화이트박스 구현들을 생성하는 시스템 및 방법 | |
KR101256149B1 (ko) | 프로그램 카운터 인코딩을 이용한 간접 함수 호출 보호 방법 및 보호 장치 | |
KR101216995B1 (ko) | 인덱스 테이블 기반 코드 암호화 및 복호화 장치 및 그 방법 | |
US20150095653A1 (en) | Method and apparatus of creating application package, method and apparatus of executing application package, and recording medium storing application package | |
US20110271350A1 (en) | method for protecting software | |
US10482221B2 (en) | Protecting a computer program against reverse engineering | |
CN102236757A (zh) | 一种适用于Android系统的软件保护方法及系统 | |
CN110188555B (zh) | 一种磁盘数据保护方法、系统及相关组件 | |
CN101957903A (zh) | 一种保护类文件的方法和装置 | |
CN111177749A (zh) | 加密源代码文件处理方法、装置、计算机设备和存储介质 | |
FR2887097A1 (fr) | Procede de protection d'un code-source en langage semi-interprete | |
JP2007515723A (ja) | アクティブなエンティティを使用するソフトウェア実行保護 | |
CN115618405A (zh) | 一种Jar文件保护方法及Jar程序运行方法 | |
CN115168873A (zh) | 基于c++语言的软件防破解方法 | |
CN104866740A (zh) | 一种防静态分析文件的方法及装置 | |
CN113221077A (zh) | 基于spring容器的class文件加密方法及设备 | |
CN106845169B (zh) | 一种Jar包加固方法及系统 | |
CN111291333A (zh) | 一种Java应用程序加密方法及装置 | |
CN112685697B (zh) | 一种防止安卓应用被破解篡改的方法及终端 | |
KR102177920B1 (ko) | 원본코드 패킹장치 및 원본코드 패킹방법 | |
CN114329357A (zh) | 保护代码安全的方法及装置 | |
CN115114654A (zh) | 一种保护本地数字资源的方法、介质和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |