[发明专利]一种JSON数据加密解密的方法在审

专利信息
申请号: 202111462037.2 申请日: 2021-12-02
公开(公告)号: CN114065304A 公开(公告)日: 2022-02-18
发明(设计)人: 李兴平;江伟伟 申请(专利权)人: 四三九九网络股份有限公司
主分类号: G06F21/64 分类号: G06F21/64;G06F21/60
代理公司: 北京市盛峰律师事务所 11337 代理人: 席小东
地址: 361009 福建省*** 国省代码: 福建;35
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 json 数据 加密 解密 方法
【权利要求书】:

1.一种JSON数据加密解密的方法,其特征在于,包括以下步骤:

步骤1,JSON数据加密过程:

步骤1.1,传入明文JSON数据;

步骤1.2,按签名算法计算所述明文JSON数据的签名,得到数据签名;

步骤1.3,对所述明文JSON数据进行压缩处理,得到明文JSON压缩数据;将所述明文JSON压缩数据进行类型转换,转换为ArrayBuffer类型数据;

步骤1.4,将所述ArrayBuffer类型数据转换为Uint8Array类型数据;

步骤1.5,对步骤1.2得到的数据签名进行ASCII编码,得到ASCII编码形式的数据签名ASCII编码字符串;

步骤1.6,假设数据签名ASCII编码字符串的位数为m位,编码值分别表示为:P1,P2,...,Pm

Uint8Array类型数据的位数为n位,n2m;

采用数据签名ASCII编码字符串的ASCII编码码值,对Uint8Array类型数据的头部m位进行逐位加偏移值进行替换;

具体方法为:假设Uint8Array类型数据的前m位编码值分别表示为:B1,B2,...,Bm

则:B1′=B1+P1;B2′=B2+P2,...,Bm′=Bm+Pm

其中:B1′,B2′,...,Bm′分别代表Uint8Array类型数据的前m位编码值替换后的值;

步骤1.7,采用数据签名ASCII编码字符串的ASCII编码码值,对Uint8Array类型数据的尾部m位进行逐位加偏移值进行替换;

具体方法为:假设Uint8Array类型数据的尾部m位编码值自后向前分别表示为:E1,E2,...,Em

则:E1′=E1+P1,E2′=E2+P2,...,Em′=Em+Pm

其中:E1′,E2′,...,Em′分别代表Uint8Array类型数据的尾部m位编码值替换后的值;

步骤1.8,由此得到头部和尾部替换后的Uint8Array类型数据,表示为:Uint8Array类型数据data(1);

向Uint8Array类型数据data(1)的数据头部添加加密标识位数以及加密标识,得到Uint8Array类型数据data(2);

向Uint8Array类型数据data(2)的数据头部添加签名字符串位数以及数据签名ASCII编码字符串的ASCII编码码值,得到Uint8Array类型数据data(3);

步骤1.9,将Uint8Array类型数据data(3)转为ArrayBuffer类型数据,再将ArrayBuffer类型数据转为JSON字符串形式,由此得到密文JSON数据;

步骤2,JSON数据解密过程:

步骤2.1,获得待解密的密文JSON数据;

步骤2.2,将密文JSON数据转为ArrayBuffer类型数据;将ArrayBuffer类型数据转为Uint8Array类型数据;

步骤2.3,在步骤2.2得到的Uint8Array类型数据中,定位到头部表示加密标识位数的存储位,再从加密标识位数的存储位往后,读取相应位数的码值,将码值转化为字符串;

然后,判断读取到的字符串是否与预存储的加密标识一致,如果一致,则表示加密标识合法,执行步骤2.4;否则,表示加密标识非法,解密失败,结束流程;

步骤2.4,在步骤2.2得到的Uint8Array类型数据中,定位到头部表示签名字符串位数的存储位,再从签名字符串位数的存储位往后,读取相应位数的码值,将码值转化为ASII编码的字符串,称为数据签名ASCII编码字符串;

然后,从步骤2.2得到的Uint8Array类型数据中,删除头部的加密标识位数以及加密标识,再删除签名字符串位数以及数据签名编码字符串的ASCII编码码值,将得到的Uint8Array类型数据表示为:Uint8Array类型数据data(1′);

步骤2.5,根据步骤2.4得到的数据签名ASCII编码字符串,对Uint8Array类型数据data(1′)的头部数据进行逐位复原;

具体方法为:

设步骤2.4得到的数据签名ASCII编码字符串为k位,编码值分别表示为:Q1,Q2,...,Qk

Uint8Array类型数据data(1′)的位数大于2k;将Uint8Array类型数据data(1′)的前k位编码值分别表示为:C1,C2,...,Ck

则:C1′=C1-Q1,C2′=C2-Q2,...,Ck′=Ck-Qk

其中:C1′,C2′,...,Ck′分别代表Uint8Array类型数据data(1′)的前k位编码值复原后的值;

步骤2.6,根据步骤2.4得到的数据签名ASCII编码字符串,对Uint8Array类型数据data(1′)的尾部数据进行逐位复原;

具体方法为:假设Uint8Array类型数据data(1′)的尾部k位编码值自后向前分别表示为:F1,F2,...,Fk

则:F1′=F1-C1,F2′=F2-C2,...,Fk′=Fk-Ck

其中:F1′,F2′,...,Fk′分别代表Uint8Array类型数据data(1′)的尾部k位编码值复原后的值;

步骤2.7,由此得到头部和尾部逐位复原后的编码字符串,表示为:Uint8Array类型数据data(2′);

将Uint8Array类型数据data(2′)转换为ArrayBuffer类型的数据;

采用预设定的解压缩算法,对ArrayBuffer类型的数据进行解压缩处理,得到明文JSON数据;

步骤2.8,对步骤2.7得到的明文JSON数据,按预设定的签名算法计算签名,得到的数据签名表示为:数据签名(A);

判断计算得到的数据签名(A)是否与步骤2.4读取到的数据签名ASCII编码字符串一致,如果不一致,则表明签名校验失败,解密失败,结束流程;如果一致,则解密得到明文JSON数据,结束流程。

2.根据权利要求1所述的一种JSON数据加密解密的方法,其特征在于,步骤1.2采用的签名算法为MD5签名算法。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四三九九网络股份有限公司,未经四三九九网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202111462037.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top