[发明专利]一种Jar包加固方法及系统有效
申请号: | 201611076233.5 | 申请日: | 2016-11-29 |
公开(公告)号: | CN106650342B | 公开(公告)日: | 2023-06-23 |
发明(设计)人: | 马娟 | 申请(专利权)人: | 北京握奇智能科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京天悦专利代理事务所(普通合伙) 11311 | 代理人: | 田明;于春洋 |
地址: | 100102 北京市朝阳区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 jar 加固 方法 系统 | ||
1.一种Jar包加固方法,所述方法包括如下步骤:
使用国密算法加密需要提供给第三方的Jar包,同时提供解密库给第三方;
存放Jar包的加密密钥;
提取上述加密密钥;
调用上述解密库解密所述Jar包,解密成功后将Jar包加载到内存中,同时删除本地相关解密文件;
所述Jar包的加密分为以下五个步骤:
(1)、计算Jar包的SM3摘要值,记为SM3;
(2)、取16字节随机数RND16;
(3)、将SM3的前16字节与后16字节异或,记为Key1;
(4)、将Key1作为加密密钥对RND16进行SM4加密,结果记为Key2;
(5)、Key2作为Jar包加密密钥,对Jar包进行SM4加密。
2.如权利要求1所述的Jar包加固方法,其特征在于,所述存放Jar包的加密密钥的方法如下:对Jar包进行SM4加密的结果分为49块,其中前48块用来随机存放加密密钥;加密密钥第1字节存放在第48块,存放位置由第49块的数据确定,加密密钥第2字节存放在第47块,存放位置由第48块数据加第1字节密钥值确定,依次类推。
3.如权利要求2所述的Jar包加固方法,其特征在于,所述提取加密密钥的过程如下:
(1)、计算49块数据的大小;
(2)、获取第49块数据和第48块数据,获取第1字节密钥在第48块中的存储位置,从而获取第1字节的密钥值并还原第48块数据;
(3)、获取第2字节密钥在第47块中的存储位置,从而获取第2字节的密钥值并还原第47块数据;
(4)、以此类推,获取48字节的密钥及原始的49块数据。
4.如权利要求3所述的Jar包加固方法,其特征在于,上述解密Jar包的过程如下:
(1)、将48字节密钥值的前16字节与中间16字节异或,还原出Key1,使用Key1对后16字节密钥进行SM4解密,还原出Key2;
(2)、使用Key2对原始的49块数据进行SM4解密,还原出明文Jar包;
(3)、对明文Jar包计算SM3摘要值,与加密密钥前32字节进行比较,验证Jar包的完整性。
5.一种Jar包加固系统,其特征在于,所述系统包括如下模块:
Jar包加密模块,通过使用国密算法加密需要提供给第三方的Jar包,同时提供解密库给第三方;
密钥存放模块,用于存放Jar包的加密密钥;
密钥提取模块,用于提取上述加密密钥;
Jar包解密模块,通过调用上述解密库解密所述Jar包,解密成功后将Jar包加载到内存中,同时删除本地相关解密文件;
所述Jar包加密模块具有如下五个单元:
SM3摘要值计算单元,用于计算Jar包的SM3摘要值,记为SM3;
随机数生成单元,用于取得16字节随机数RND16;
异或单元,用于将SM3的前16字节与后16字节异或,记为Key1;
随机数加密单元,用于将Key1作为加密密钥对RND16进行SM4加密,结果记为Key2;
SM4加密单元,用于将Key2作为Jar包加密密钥,对Jar包进行SM4加密。
6.如权利要求5所述的Jar包加固系统,其特征在于,所述密钥存放模块存放Jar包的加密密钥的方法如下:对Jar包进行SM4加密的结果分为49块,其中前48块用来随机存放加密密钥;加密密钥第1字节存放在第48块,存放位置由第49块的数据确定,加密密钥第2字节存放在第47块,存放位置由第48块数据加第1字节密钥值确定,依次类推。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京握奇智能科技有限公司,未经北京握奇智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611076233.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:电视柜(KV999)
- 下一篇:一种DEM置乱加密与还原方法