[发明专利]一种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签名算法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四三九九网络股份有限公司,未经四三九九网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111462037.2/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置