数据传输加解密方法、装置、计算机设备及存储介质转让专利
申请号 : CN202110737084.7
文献号 : CN113259132B
文献日 : 2021-09-28
发明人 : 卢中华
申请人 : 平安普惠企业管理有限公司
摘要 :
权利要求 :
1.一种数据传输加密方法,应用于数据发送端,其特征在于,包括:基于拼接的明文数据和当前时间戳通过预设的加密算法生成AES秘钥;
通过预设的RSA公钥或预设的RSA私钥对所述AES秘钥进行加密以得到AES字节流密文;
通过自定义的Base64编码方式改变所述AES字节流密文中每个字节流所对应的字符取值逻辑以对所述AES字节流密文进行编码得到AES密文;
通过所述AES秘钥对所述明文数据进行加密以得到密文数据;
通过MD5算法对所述明文数据进行加密以生成原始MD5值;
将所述AES密文、所述密文数据以及所述原始MD5值作为加密数据发送至数据接收端。
2.根据权利要求1所述的方法,其特征在于,所述将所述AES密文、所述密文数据以及所述原始MD5值作为加密数据发送至数据接收端,包括:将所述AES密文、所述密文数据以及所述原始MD5值作为加密数据封装组合成json格式的字符串;
基于HTTPS协议将所述json格式的字符串发送至数据接收端。
3.一种数据传输解密方法,应用于数据接收端,其特征在于,包括:接收数据发送端发送的加密数据,并从所述加密数据中获取AES密文、密文数据以及原始MD5值;
通过自定义的Base64编码方式对所述AES密文进行解码以得到AES字节流密文;
通过预设的RSA公钥或预设的RSA私钥对所述AES字节流密文进行解密以得到AES秘钥;
通过所述AES秘钥对所述密文数据进行解密以得到明文数据;
通过MD5算法对所述明文数据进行加密以生成校验MD5值;
判断所述原始MD5值与所述校验MD5值是否相等;
若所述原始MD5值与所述校验MD5值相等,则判定所述明文数据传输成功。
4.根据权利要求3所述的方法,其特征在于,所述接收数据发送端发送的加密数据,并从所述加密数据中获取AES密文、密文数据以及原始MD5值,包括:接收数据发送端发送的加密数据,并识别所述加密数据的数据类型;
若所述加密数据为json格式的字符串,则对所述json格式的字符串进行解析以获取所述AES密文、密文数据以及原始MD5值。
5.一种数据传输加密装置,其特征在于,包括:生成单元,用于基于拼接的明文数据和当前时间戳通过预设的加密算法生成AES秘钥;
加密子单元,用于通过预设的RSA公钥或预设的RSA私钥对所述AES秘钥进行加密以得到AES字节流密文;
编码单元,用于通过自定义的Base64编码方式改变所述AES字节流密文中每个字节流所对应的字符取值逻辑以对所述AES字节流密文进行编码得到AES密文;
第一加密单元,用于通过所述AES秘钥对所述明文数据进行加密以得到密文数据;
第二加密单元,用于通过MD5算法对所述明文数据进行加密以生成原始MD5值;
发送单元,用于将所述AES密文、所述密文数据以及所述原始MD5值作为加密数据发送至数据接收端。
6.一种数据传输解密装置,其特征在于,包括:获取单元,用于接收数据发送端发送的加密数据,并从所述加密数据中获取AES密文、密文数据以及原始MD5值;
解码单元,用于通过自定义的Base64编码方式对所述AES密文进行解码以得到AES字节流密文;
解密子单元,用于通过预设的RSA公钥或预设的RSA私钥对所述AES字节流密文进行解密以得到AES秘钥;
解密单元,用于通过所述AES秘钥对所述密文数据进行解密以得到明文数据;
加密单元,用于通过MD5算法对所述明文数据进行加密以生成校验MD5值;
判断单元,用于判断所述原始MD5值与所述校验MD5值是否相等;
判定单元,用于若所述原始MD5值与所述校验MD5值相等,则判定所述明文数据传输成功。
7.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1‑2中任一项所述的方法或是执行如权利要求3‑4中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序当被处理器执行时可实现如权利要求1‑2中任一项所述的方法或是执行如权利要求
3‑4中任一项所述的方法。
说明书 :
数据传输加解密方法、装置、计算机设备及存储介质
技术领域
背景技术
使用现有的加解密算法对明文直接加密,按照既定的存储和传输协议对密文进行存储和传
输,虽然可以在一定程度上保证数据传输的安全,但是,由于其加密和传输过程都是只分别
针对明文本身数据进行处理,加密强度不够大,较容易被破译获取,安全性较低。
发明内容
方面的方法。
法。
通过预设秘钥及自定义的Base64编码方式对所述AES秘钥进行处理以得到AES密文;通过所
述AES秘钥对所述明文数据进行加密以得到密文数据;通过MD5算法对所述明文数据进行加
密以生成原始MD5值;将所述AES密文、所述密文数据以及所述原始MD5值作为加密数据发送
至数据接收端;数据接收端通过自定义的Base64编码方式及预设秘钥对所述AES密文进行
处理得到AES秘钥;通过所述AES秘钥对所述密文数据进行解密以得到明文数据;通过MD5算
法对所述明文数据进行加密以生成校验MD5值,根据所述原始MD5值及所述校验MD5值判断
所述明文数据是否传输成功。本发明实施例的技术方案,在数据加密过程中,首先基于拼接
的明文数据和当前时间戳通过预设的加密算法生成AES秘钥,确保了每一次生成AES秘钥的
唯一性;然后不仅对需要传输的明文数据使用AES秘钥进行了加密,还通过预设秘钥及自定
义的Base64编码方式对需要传输的AES秘钥进行处理以得到AES密文,因此可提高数据加密
强度,确保数据的安全性;最后,在数据解密过程中,通过判断校验MD5值与原始MD5值是否
相等来确保明文数据的一致性。
附图说明
通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
具体实施方式
明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施
例,都属于本发明保护的范围。
体、步骤、操作、元素、组件和/或其集合的存在或添加。
下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于
确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
软件程序来实现该数据传输加密方法。下面对所述数据传输加密方法进行详细说明。如图1
所示,该方法包括以下步骤S100‑S140。
MD5算法,之所以采用MD5算法对拼接后的明文数据和当前时间戳进行加密,是因为MD5算法
是一种被广泛使用的加密算法,该算法可以产生出一个128(16字节)的散列值,因此生成的
AES秘钥较为复杂;而之所以每次都要将明文数据和当前时间戳进行拼接,拼接完成之后才
通过MD5算法生成AES秘钥,而不是直接对明文数据采用MD5算法生成AES秘钥,是为了确保
AES秘钥每一次生成的唯一性。可理解地,AES加密算法是一种常见的对称加密算法,即加密
和解密过程采用相同的秘钥。在实际应用中,aesKey字段为一保存AES秘钥的临时变量,将
生成的所述AES秘钥保存至aesKey字段中,以便后续使用。
Base64编码通常用于把二进制数据编码为字符数据,同时,它也是一种可逆的编码方式,即
可将字符数据解码成二进制数据。在本发明实施例中,自定义的Base64编码方式是自定义
二进制数据编码为字符数据的字符取值逻辑,可理解地,由于它也是一种可逆的编码方式,
即也自定义了将字符数据解码成二进制数据的取值逻辑。例如,若用系统自带的Base64编
码方式将二进数据11编码为字符数据A,而自定义的Base64编码方式将二进数据11编码为
字符数据F,即改变了二进制数据编码为字符数据的字符取值逻辑。预设秘钥为预设的RSA
公钥或预设的RSA私钥,RSA算法是一种非对称加密算法,加密和解密过程中使用的秘钥不
相同,即若加密过程中使用了预设的RSA公钥,则解密过程中使用预设的RSA私钥,反之,若
加密过程中使用了预设的RSA私钥,则解密过程中使用预设的RSA公钥。
加密以得到AES字节流密文,其中,预设的RSA公钥及RSA私钥是系统自带的API生成的,长度
设置为2048;通过自定义的Base64编码方式改变所述AES字节流密文中每个字节流所对应
的字符取值逻辑以对所述AES字节流密文进行编码得到AES密文,得到AES密文之后,会将所
述AES密文保存至dataId字段。可理解地,在本发明实施例中,所述AES秘钥通过一系列处理
之后得到AES密文,最后将AES密文进行传输,而非直接传输AES秘钥,可提高传输数据的安
全性。
过所述AES秘钥加密之后再进行传输,可确保传输数据的安全性。
至checkId字段。其中,MD5算法是一种被广泛使用的加密算法,该算法可以产生出一个128
(16字节)的散列值,即MD5值,用于确保数据传输完整一致。而MD5值等同于传输数据的ID,
它的值是唯一的,如果传输数据被篡改,则传输数据的MD5值也会发生变化。
以及所述原始MD5值作为加密数据发送至数据接收端。实际应用中,是将所述dataId字段、
所述data字段以及checkId字段作为加密数据发送至数据接收端,数据接收端接收到所述
dataId字段、所述data字段以及checkId字段之后,会分别获取所述dataId字段中的所述
AES密文、所述data字段中的所述密文数据以及所述checkId字段中的所述原始MD5值,然后
分别对所述AES密文、所述密文数据以及所述原始MD5值进行相应处理。
加密数据封装组合成json格式的字符串,可理解地,之所以将需要传输的加密数据封装组
合成json格式的字符串,是为了方便传输;组合成json格式的字符串之后,基于HTTPS协议
将所述json格式的字符串发送至数据接收端,之所以采用HTTPS协议进行传输,是因为
HTTPS协议具有较高的加密性能,能够在一定程度上避免数据发送端向数据接收端传输数
据时出现数据泄露的情况,因此能够进一步确保数据发送端和数据接收端之间数据传输的
安全性。
软件程序来实现该数据传输解密方法。下面对所述数据传输解密方法进行详细说明。如图4
所示,该方法包括以下步骤S200‑S260。
据中获取AES密文、密文数据以及原始MD5值。
并识别所述加密数据的数据类型,若所述加密数据为json格式的字符串,则对所述json格
式的字符串进行解析得到dataId字段、data字段以及checkId字段之后,再分别获取所述
dataId字段中保存的所述AES密文、所述data字段中保存的所述密文数据以及所述checkId
字段中保存的所述原始MD5值,得到所述AES密文、所述密文数据以及所述原始MD5值之后,
再分别对所述AES密文、所述密文数据以及所述原始MD5值进行处理以完成传输数据的解
密。可理解地,若所述加密数据不为json格式的字符串,则需要进行数据类型的转换,转换
成json格式的字符串之后才进行相应处理。
钥。可理解地,在实际应用中,若数据接收端为客户端,则预设秘钥为预设的RSA公钥;反之
若数据接收端为服务器端,则预设秘钥为预设的RSA私钥。
得到AES字节流密文,其中,通过自定义Base64编码方式对所述AES密文进行解码的过程与
通过自定义Base64编码方式对所述AES字节流密文加密的过程均采用统一的UTF‑8编码格
式;得到AES字节流密文之后,通过预设的RSA公钥或预设的RSA私钥对所述AES字节流密文
进行解密以得到AES秘钥,其中,预设的RSA公钥及预设的RSA私钥是系统自带的API生成的。
数据的一致性和完整性。
之前的所述原文数据一致,在传输过程中,数据未被篡改或拦截,则判定所述明文数据传输
成功;若所述原始MD5值与所述校验MD5值不相等,表明解密之后的所述原文数据与加密之
前的所述原文数据不一致,在传输过程中,数据已被篡改或拦截,则应向用户发出安全风险
提示,例如,通过弹出提示框的方式,提醒用户解密之后的原文数据存在安全风险。
装置200包括用于执行上述数据传输加密方法的单元,该装置可以被配置于数据发送端。具
体地,请参阅图7,该数据传输加密装置200包括生成单元201、处理单元202、第一加密单元
203、第二加密单元204以及发送单元205。
AES秘钥进行处理以得到AES密文;所述第一加密单元203用于通过所述AES秘钥对所述明文
数据进行加密以得到密文数据;所述第二加密单元204用于通过MD5算法对所述明文数据进
行加密以生成原始MD5值;所述发送单元205用于将所述AES密文、所述密文数据以及所述原
始MD5值作为加密数据发送至数据接收端。
式改变所述AES字节流密文中每个字节流所对应的字符取值逻辑以对所述AES字节流密文
进行编码得到AES密文。
所述json格式的字符串发送至数据接收端。
解密装置300包括用于执行上述数据传输解密方法的单元,该装置可以被配置于数据接收
端中。具体地,请参阅图10,该数据传输解密装置300包括获取单元301、处理单元302、解密
单元303、加密单元304、判断单元305以及判定单元306。
方式及预设秘钥对所述AES密文进行处理以得到AES秘钥;所述解密单元303用于通过所述
AES秘钥对所述密文数据进行解密以得到明文数据;所述加密单元304用于通过MD5算法对
所述明文数据进行加密以生成校验MD5值;所述判断单元305用于判断所述原始MD5值与所
述校验MD5值是否相等;所述判定单元306用于若所述原始MD5值与所述校验MD5值相等,则
判定所述明文数据传输成功。
述json格式的字符串进行解析以获取所述AES密文、密文数据以及原始MD5值。
钥对所述AES字节流密文进行解密以得到AES秘钥。
为服务器端;若数据发送端为服务器端,则数据接收端为客户端。其中,服务器可以是独立
的服务器,也可以是多个服务器组成的服务器集群;客户端为手提电脑、笔记本电脑、台式
电脑等智能终端设备。
数据,也可使得处理器402执行一种数据传输解密方法。
据传输加密方法加密的数据,也可使得处理器402执行一种数据传输解密方法。
于其上的计算机设备400的限定,具体的计算机设备400可以包括比图中所示更多或更少的
部件,或者组合某些部件,或者具有不同的部件布置。
自定义的Base64编码方式对所述AES秘钥进行处理以得到AES密文;通过所述AES秘钥对所
述明文数据进行加密以得到密文数据;通过MD5算法对所述明文数据进行加密以生成原始
MD5值;将所述AES密文、所述密文数据以及所述原始MD5值作为加密数据发送至数据接收
端。
预设的RSA公钥或预设的RSA私钥对所述AES秘钥进行加密以得到AES字节流密文;通过自定
义的Base64编码方式改变所述AES字节流密文中每个字节流所对应的字符取值逻辑以对所
述AES字节流密文进行编码得到AES密文。
述AES密文、所述密文数据以及所述原始MD5值作为加密数据封装组合成json格式的字符
串;基于HTTPS协议将所述json格式的字符串发送至数据接收端。
始MD5值;通过自定义的Base64编码方式及预设秘钥对所述AES密文进行处理以得到AES秘
钥;通过所述AES秘钥对所述密文数据进行解密以得到明文数据;通过MD5算法对所述明文
数据进行加密以生成校验MD5值;判断所述原始MD5值与所述校验MD5值是否相等;若所述原
始MD5值与所述校验MD5值相等,则判定所述明文数据传输成功。
步骤:接收数据发送端发送的加密数据,并识别所述加密数据的数据类型;若所述加密数据
为json格式的字符串,则对所述json格式的字符串进行解析以获取所述AES密文、密文数据
以及原始MD5值。
自定义的Base64编码方式对所述AES密文进行解码以得到AES字节流密文;通过预设的RSA
公钥或预设的RSA私钥对所述AES字节流密文进行解密以得到AES秘钥。
(Digital Signal Processor,DSP)、专用集成电路 (Application Specific Integrated
Circuit,ASIC)、现成可编程门阵列 (Field‑Programmable Gate Array,FPGA) 或者其他
可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是
微处理器或者该处理器也可以是任何常规的处理器等。
该存储介质为计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执
行,以实现上述方法的实施例的流程步骤。
接的明文数据和当前时间戳通过预设的加密算法生成AES秘钥;
数据进行加密以生成原始MD5值;将所述AES密文、所述密文数据以及所述原始MD5值作为加
密数据发送至数据接收端。
具体实现如下步骤:通过预设的RSA公钥或预设的RSA私钥对所述AES秘钥进行加密以得到
AES字节流密文;通过自定义的Base64编码方式改变所述AES字节流密文中每个字节流所对
应的字符取值逻辑以对所述AES字节流密文进行编码得到AES密文。
时,具体实现如下步骤:将所述AES密文、所述密文数据以及所述原始MD5值作为加密数据封
装组合成json格式的字符串;基于HTTPS协议将所述json格式的字符串发送至数据接收端。
编码方式及预设秘钥对所述AES密文进行处理以得到AES秘钥;通过所述AES秘钥对所述密
文数据进行解密以得到明文数据;通过MD5算法对所述明文数据进行加密以生成校验MD5
值;判断所述原始MD5值与所述校验MD5值是否相等;若所述原始MD5值与所述校验MD5值相
等,则判定所述明文数据传输成功。
MD5值步骤时,具体实现如下步骤:接收数据发送端发送的加密数据,并识别所述加密数据
的数据类型;若所述加密数据为json格式的字符串,则对所述json格式的字符串进行解析
以获取所述AES密文、密文数据以及原始MD5值。
具体实现如下步骤:通过自定义的Base64编码方式对所述AES密文进行解码以得到AES字节
流密文;通过预设的RSA公钥或预设的RSA私钥对所述AES字节流密文进行解密以得到AES秘
钥。
和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这
些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专
业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不
应认为超出本发明的范围。
仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结
合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以
是两个或两个以上单元集成在一个单元中。
术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计
算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个
人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
之内,则本发明也意图包含这些改动和变型在内。
换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利
要求的保护范围为准。