一种数据加密方法、数据解密方法、系统、设备和介质与流程

专利2022-06-29  104


本发明涉及计算机技术领域,具体涉及一种数据加密方法、数据解密方法、装置、系统、计算机设备和计算机可读存储介质。



背景技术:

国密算法即国家密码局认定的国产密码算法,即商用密码,用于实现对数据进行加密和解密,以保证数据和信息的机密性。

在相关技术中,当有数据包需要加密的情况下,国密算法可以对该数据包中的扩展头、协议头、载荷数据、填充字段和封装安全载荷(encapsulatesecuritypayload,简称为esp)进行加密。

然而,发明人在研究本发明的过程中发现,相关技术中至少存在如下缺陷:相关技术在对数据包加密时,并未考虑数据包的长度,当需要对大量长度较小的数据包加密时,需要频繁调用国密算法,严重影响系统性能。



技术实现要素:

本发明的目的在于提供了一种数据加密方法、数据解密方法、装置、系统、计算机设备和计算机可读存储介质,能够降低相关技术中调用国密算法的次数并提升系统性能。

本发明的一个方面提供了一种数据加密方法,所述方法包括:获取待加密数据;确定获取到的所有所述待加密数据的长度总和;判断所述长度总和是否大于等于第一预设长度阈值;在所述长度总和小于所述第一预设长度阈值时,继续获取其他的待加密数据,直至所述长度总和大于等于所述第一预设长度阈值;在所述长度总和大于等于所述第一预设长度阈值时,调用预设加密算法对获取到的所有所述待加密数据加密,得到已加密总数据。

可选地,所述方法还包括:确定调用所述预设加密算法对获取到的所有所述待加密数据加密时每个所述待加密数据的位置信息;根据所述已加密总数据和每个所述待加密数据的位置信息构建报文。

可选地,根据所述已加密总数据和每个所述待加密数据的位置信息构建至少一个报文的步骤包括:获取合并标识,其中,所述合并标识表征所述已加密总数据是通过所述预设加密算法对获取到的所有所述待加密数据加密得到的;根据所述已加密总数据、每个所述待加密数据的位置信息和所述合并标识构建所述报文。

可选地,在所述长度总和小于所述第一预设长度阈值时,继续获取其他的待加密数据的步骤包括:在所述长度总和小于所述第一预设长度阈值时,从截止到当前时间获取到的所有所述待加密数据中,确定获取首个所述待加密数据的时间;判断距离获取首个所述待加密数据的时间的时间间隔是否大于等于第一预设时间阈值;在距离获取首个所述待加密数据的时间的时间间隔小于所述第一预设时间阈值时,继续获取其他的待加密数据。

本发明的另一个方面提供了一种数据解密方法,所述方法包括:接收对端设备发送的报文;调用预设加密算法对所述报文中携带的待解密数据解密,得到已解密数据;判断是否需要对所述已解密数据进行拆分;在需要对所述已解密数据拆分时,获取所述报文携带的位置信息;将每个所述位置信息的排列顺序作为拆分顺序,依次从所述已解密数据中拆分出与每个所述位置信息相对应的数据,得到每个所述位置信息的已解密子数据。

可选地,判断是否需要对所述已解密数据进行拆分的步骤包括:判断所述报文是否携带有合并标识;相应地,在需要对所述已解密数据拆分时,获取所述报文携带的位置信息的步骤包括:在所述报文携带有所述合并标识时,获取所述报文携带的位置信息。

本发明的再一个方面提供了一种数据传输系统,包括发送端和接收端,其中:所述发送端用于:获取目标数据,确定获取到的所有所述目标数据的长度总和,作为第一长度总和,判断所述第一长度总和是否大于等于第一预设长度阈值,在所述第一长度总和小于所述第一预设长度阈值时,继续获取其他的目标数据,直至所述第一长度总和大于等于所述第一预设长度阈值,在所述第一长度总和大于等于所述第一预设长度阈值时,调用对称加密算法对获取到的所有所述目标数据加密,得到已加密总数据,确定调用所述预设加密算法对获取到的所有所述目标数据加密时每个所述目标数据的位置信息,根据所述已加密总数据和每个所述待加密数据的位置信息构建一个报文;所述接收端用于:接收所述发送端发送的所述报文,调用预设加密算法对所述报文中携带的已加密总数据解密,得到已解密数据,判断是否需要对所述已解密数据进行拆分,在需要对所述已解密数据拆分时,获取所述报文携带的位置信息,将每个所述位置信息的排列顺序作为拆分顺序,依次从所述已解密数据中拆分出与每个所述位置信息相对应的数据,得到每个所述位置信息对应的所述目标数据。

可选地,所述发送端在执行根据所述已加密总数据和每个所述待加密数据的位置信息构建一个报文的步骤时,还用于:获取合并标识,其中,所述合并标识表征所述已加密总数据是通过所述预设加密算法对获取到的所有所述待加密数据加密得到的,根据所述已加密总数据、每个所述待加密数据的位置信息和所述合并标识构建一个所述报文;所述接收端在执行判断是否需要对所述已解密数据进行拆分的步骤时,还用于:判断所述报文是否携带有所述合并标识;所述接收端在执行在需要对所述已解密数据拆分时,获取所述报文携带的位置信息的步骤时,还用于:在所述报文携带有所述合并标识时,获取所述报文携带的位置信息。

可选地,所述发送端在执行在所述长度总和小于所述第一预设长度阈值时,继续获取其他的待加密数据的步骤时,还用于:在所述长度总和小于所述第一预设长度阈值时,从截止到当前时间获取到的所有所述待加密数据中,确定获取首个所述待加密数据的时间;判断距离获取首个所述待加密数据的时间的时间间隔是否大于等于第一预设时间阈值;在距离获取首个所述待加密数据的时间的时间间隔小于所述第一预设时间阈值时,继续获取其他的待加密数据。

本发明的又一个方面提供了一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述的数据加密方法和/或数据解密方法。

本发明的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现上述任一实施例所述的数据加密方法和/或数据解密方法。

本发明提供的数据加密方法,在获取到待加密数据之后,并不是如现有技术那般直接调用国密算法对待加密数据加密,而是判断获取到的所有待加密数据的长度总和是否大于等于第一预设长度阈值,若是则直接调用预设加密算法对获取到的所有待加密数据共同进行加密,否则继续获取其他的待加密数据,直至长度总和大于等于第一预设长度阈值时,才调用预设加密算法对获取到的所有待加密数据共同进行加密,本发明提供的数据加密方法有效的减少调用预设加密算法的次数,提高了系统性能。并且,鉴于解密端对已加密总数据解密后会得到一个整体的已解密数据,该整体的已解密数据即为所有待加密数据的拼接,而为了后续得到每个原始数据,即每个待加密数据,需要根据位置信息对已解密数据拆分,基于此,发送端在向接收端发送报文时,还需要将各个位置信息也添加在报文中,以保证解密的完整性。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示意性示出了根据本发明实施例一的数据加密方法的流程图;

图2示意性示出了根据本发明实施例二的数据解密方法的流程图;

图3示意性示出了根据本发明实施例三的数据加密装置的框图;

图4示意性示出了根据本发明实施例四的数据解密装置的框图;

图5示意性示出了根据本发明实施例五的数据传输系统的框图;

图6示意性示出了根据本发明实施例六的适于实现数据加密方法和/或数据解密方法的计算机设备的框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

应用场景

随着企业网络的发展,很多企业需要在各自的总部和分部之间进行资源共享和协同合作,但是网络专线费用太高,因此vpn(virtualprivatenetwork,虚拟专用网络)技术应运而生。本发明可以应用于国密vpn场景,既在使用国密vpn传输数据时,可以使用国密算法对传输的数据加解密。但是现有技术未考虑数据的长度,当需要对大量长度较小的数据加密时,现有技术需要频繁调用国密算法,严重影响系统的性能。基于上述缺陷,在接收端和发送端基于esp(encapsulatesecuritypayload,封装安全载荷)封装的隧道传输数据时,本发明只有在数据长度累计到达第一预设长度阈值时,才调用国密算法完成对数据的加密。例如,对于需要加密的数据,在数据的累计长度达到第一预设长度阈值时,调用国密算法对这些数据一起加密,然后将加密结果通过国密vpn发送至对端设备。

需要说明的是,本发明的应用场景仅仅是一个示例,其并不对本发明的保护范围造成限定。

实施例一

图1示意性示出了根据本发明实施例一的数据加密方法的流程图。如图1所示,该实施例一所述的数据加密方法可以包括步骤s11~步骤s15,其中:

步骤s11,获取待加密数据。

本实施例中,可以预先创建一个空的数组de,用于存储获取的待加密数据。每次获取的待加密数据可以称为一个待加密数据单元,且可以将每次获取的待加密数据存储于数组de中。

步骤s12,确定获取到的所有所述待加密数据的长度总和。

每个待加密数据可以对应一个长度,所有的待加密数据可以对应一个长度总和。在首次获取一个待加密数据时,步骤s12确定的长度总和即为一个待加密数据的长度。由于本实施例可以将每次获取的待加密数据存储于数组de中,因此步骤s12可以是确定数组de的长度,既le。

步骤s13,判断所述长度总和是否大于等于第一预设长度阈值。

进一步,在对获取的所有待加密数据加密之前,需要判断是否满足加密条件,既长度总和是否大于等于第一预设长度阈值,在长度总和大于等于第一预设长度阈值时,执行步骤s15;在长度总和小于第一预设长度阈值时,执行步骤s14。

步骤s14,在所述长度总和小于所述第一预设长度阈值时,继续获取其他的待加密数据,直至所述长度总和大于等于所述第一预设长度阈值。

本实施例中,在不满足加密条件时,需要继续获取其他的待加密数据,然后将依然将继续获取的待加密数据存储于数组de中,每次存储后,可以判断当前数组de的长度le是否大于等于第一预设长度阈值,若是,则执行步骤s15,否则继续获取其他的待加密数据,直至长度总和大于等于第一预设长度阈值。

可选地,步骤s14中在所述长度总和小于所述第一预设长度阈值时,继续获取其他的待加密数据的步骤可以包括步骤s141~步骤s143,其中:

步骤s141,在所述长度总和小于所述第一预设长度阈值时,从截止到当前时间获取到的所有所述待加密数据中,确定获取首个所述待加密数据的时间;

步骤s142,判断距离获取首个所述待加密数据的时间的时间间隔是否大于等于第一预设时间阈值;

步骤s143,在距离获取首个所述待加密数据的时间的时间间隔小于所述第一预设时间阈值时,继续获取其他的待加密数据。

其中,在距离获取首个待加密数据的时间的时间间隔大于等于第一预设时间阈值时,调用预设加密算法对获取到的所有待加密数据加密。

为了避免长时间等待后,依然无法满足加密条件,从而导致系统长时间的停滞,影响传输进度,本实施例可以增加对时间的限定,既截止到当前时间为止,从目前获取的所有待加密数据中确定获取首个待加密数据的时间,然后计算当前时间距离获取首个待加密数据的时间的时间间隔,当该时间间隔大于等于第一预设时间阈值时,不再继续等待其他的待加密数据,而是立即调用预设加密算法对获取到的所有待加密数据加密;否则,可以继续获取其他的待加密数据。

可选地,可以在获取到首个待加密数据时开启计时器,且计时器的初始值为0,则步骤s142可以是判断计时器的时间是否大于等于第一预设时间阈值。在调用预设加密算法对获取到的所有待加密数据加密后,可以将计时器和数组de清0。

步骤s15,在所述长度总和大于等于所述第一预设长度阈值时,调用预设加密算法对获取到的所有所述待加密数据加密,得到已加密总数据。

一旦长度总和大于等于第一预设长度阈值,既数组de的长度le大于等于第一预设长度阈值,便可调用预设加密算法对获取到的所有待加密数据一起进行加密。其中,预设加密算法可以为国密算法,如国密算法中的对称加密算法、国密sm1算法或国密sm4算法等。

可选地,该数据加密方法还可以包括:确定调用所述预设加密算法对获取到的所有所述待加密数据加密时每个所述待加密数据的位置信息;根据所述已加密总数据和每个所述待加密数据的位置信息构建报文。

本实施例中,还可以构建整型数组le,用于存储获取的每个待加密数据的长度,且存储顺序与获取的每个待加密数据的顺序一致,也既与数组de中存储的每个待加密数据的顺序一致。其中,可以在每次获取到一个待加密数据之后,除了将该待加密数据存储到数组de中之外,还可以确定该待加密数据的长度,并将该长度存储至数组le中。每个待加密数据的位置信息包括存储的位置和长度。

进一步,由于在长度总和大于等于第一预设长度阈值之后,已加密总数据是对获取的所有待加密数据共同加密后得到的,既是对数组de中存储所有的待加密数据进行加密得到的,因此在解密时,会先对已加密总数据解密得到一个整体的已解密数据,该整体的已解密数据即为所有待加密数据的拼接。而为了后续得到每个原始数据,即每个待加密数据,需要根据位置信息对已解密数据拆分,基于此,发送端在向接收端发送报文时,需要将各个位置信息也添加在报文中。

具体地,根据所述已加密总数据和每个所述待加密数据的位置信息构建报文可以包括步骤a1和步骤a2,其中:

步骤a1,获取合并标识,其中,所述合并标识表征所述已加密总数据是通过所述预设加密算法对获取到的所有所述待加密数据加密得到的;

步骤a2,根据所述已加密总数据、每个所述待加密数据的位置信息和所述合并标识构建所述报文。

本实施例中,当表示接收端对已加密总数据解密后,需要将解密后的数据进行拆分时,还可以报文中添加一个合并标识,该合并标识表征已加密总数据是通过预设加密算法对获取到的所有待加密数据加密得到的。通过增加合并标识,可以使接收端快速准确地判断接收到的已加密总数据是通过何种方式加密的,以便接收端在得知接收到的已加密总数据是一个总的整体时,在接收端完成解密后,对解密数据进程拆分。

需要说明的是,第一预设长度阈值和第一预设时间阈值可以根据具体的设备环境和用户需求设定,如在国密vpn场景下,可以通过打流方式获取国密vpn下预设加密算法的吞吐量,并进行大量测试,将最好的吞吐量对应的第一预设长度阈值和第一预设时间阈值应用在实际场景中。

本发明提供的数据加密方法,在获取到待加密数据之后,并不是如现有技术那般直接调用国密算法对待加密数据加密,而是判断获取到的所有待加密数据的长度总和是否大于等于第一预设长度阈值,若是则直接调用预设加密算法对获取到的所有待加密数据共同进行加密,否则继续获取其他的待加密数据,直至长度总和大于等于第一预设长度阈值时,才调用预设加密算法对获取到的所有待加密数据共同进行加密,本发明提供的数据加密方法有效的减少调用预设加密算法的次数,提高了系统性能。并且,鉴于解密端对已加密总数据解密后会得到一个整体的已解密数据,该整体的已解密数据即为所有待加密数据的拼接,而为了后续得到每个原始数据,即每个待加密数据,需要根据位置信息对已解密数据拆分,基于此,发送端在向接收端发送报文时,还需要将各个位置信息也添加在报文中,以保证解密的完整性。

实施例二

发明人在提供与实施例一的数据加密方法对应的数据解密方法时,考虑到数据解密的特殊性:若对一个整体数据加密得到加密结果后,解密时将多个加密结果作为一个整体进行解密,会导致解密数据错误,例如,在cbc模式下,加密算法实现规则为:先将数据包分块,然后前一块加密的密文作为下一块的iv(initializationvector,初始化向量),和密钥配合进行加解密。在解密时,如果如数据加密方法那般在长度总和达到一定程度后再对所有的待解密数据整体进行解密,则排列在非首位的待解密数据无法获得自己的iv,会导致解密失败,同时cfb模式和ofb模式有与其类似的原因。基于此,发明人提供的数据解密方法时,并不会如实施例一的数据加密方法那般根据长度总和确定何时进行解密,而是在接收到报文后直接进行数据解密,但是若判断出已解密数据是由多个原始数据拼接形成的,则需要对已解密数据拆分,以保证解密的完整性。

本实施例提供了一种数据解密方法。具体地,图2示意性示出了根据本发明实施例二的数据解密方法的流程图,如图2所示,该实施例二所述的数据解密方法可以包括步骤s21~步骤s25,其中:

步骤s21,接收对端设备发送的报文。

其中,对端设备发送的报文是通过实施例一所述方法构建的。

步骤s22,调用预设加密算法对所述报文中携带的待解密数据解密,得到已解密数据。

本实施例中,待解密数据可以是从对端设备发送过来的报文中解析出来的。

步骤s23,判断是否需要对所述已解密数据进行拆分。

判断是否需要对所述已解密数据进行拆分的步骤包括:判断所述报文是否携带有合并标识。若是,需要对所述已解密数据进行拆分,且表明所述发送端发送的报文是根据步骤a1和步骤a2构建的。

步骤s24,在需要对所述已解密数据拆分时,获取所述报文携带的位置信息。

在需要对已解密数据拆分时,表明已解密数据是实施例一中所有待加密数据整体拼接得到的,因此需要根据各个位置信息对已解密数据进行拆分,其中,位置信息的具体内容可参见实施例一。

其中,在需要对所述已解密数据拆分时,获取所述报文携带的位置信息的步骤包括:在所述报文携带有所述合并标识时,获取所述报文携带的位置信息。

步骤s25,将每个所述位置信息的排列顺序作为拆分顺序,依次从所述已解密数据中拆分出与每个所述位置信息相对应的数据,得到每个所述位置信息的已解密子数据。

由于本实施例的已解密数据是由所有待加密数据(此处的待加密数据即为本实施例中的已解密子数据)拼接得到的,因此需要从已解密数据将各个已解密子数据拆分出来,此时可以先从报文中获取每个已解密子数据的位置信息,然后以各个已解密子数据的位置信息的排列顺序作为拆分顺序,从已解密数据中拆分出每个位置信息对应的数据作为一个已解密子数据。

本发明提供的数据解密方法,依赖于数据加密方法的技术特征和技术效果,在已加密数据是对多个待加密数据整体加密后得到的数据时,解密端在解密已加密数据得到已解密数据后,该已解密数据即为这些待加密数据整体拼接得到的数据,为了保证解密的完整性,还需要对已解密数据拆分,由于报文中已经携带各个位置信息,因此通过位置信息即可从已解密数据中拆分出对应的已解密子数据,即各个待加密数据,也即各个原始数据。

实施例三

本发明的实施例三提供了一种数据加密装置,该数据加密装置与上述实施例一相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例一。具体地,图3示意性示出了根据本发明实施例三的数据加密装置的框图,如图3所示,该数据加密装置300可以包括第一获取模块301、第一确定模块302、第一判断模块303、第二获取模块304和加密模块305,其中:

第一获取模块301,用于获取待加密数据;

第一确定模块302,用于确定获取到的所有所述待加密数据的长度总和;

第一判断模块303,用于判断所述长度总和是否大于等于第一预设长度阈值;

第二获取模块304,用于在所述长度总和小于所述第一预设长度阈值时,继续获取其他的待加密数据,直至所述长度总和大于等于所述第一预设长度阈值;

加密模块305,用于在所述长度总和大于等于所述第一预设长度阈值时,调用预设加密算法对获取到的所有所述待加密数据加密,得到已加密总数据。

可选地,所述装置还包括:第二确定模块,用于确定调用所述预设加密算法对获取到的所有所述待加密数据加密时每个所述待加密数据的位置信息;构建模块,用于根据所述已加密总数据和每个所述待加密数据的位置信息构建报文。

可选地,构建模块还用于:获取合并标识,其中,所述合并标识表征所述已加密总数据是通过所述预设加密算法对获取到的所有所述待加密数据加密得到的;根据所述已加密总数据、每个所述待加密数据的位置信息和所述合并标识构建所述报文。

可选地,第二获取模块在执行在所述长度总和小于所述第一预设长度阈值时,继续获取其他的待加密数据的步骤时,还用于:在所述长度总和小于所述第一预设长度阈值时,从截止到当前时间获取到的所有所述待加密数据中,确定获取首个所述待加密数据的时间;判断距离获取首个所述待加密数据的时间的时间间隔是否大于等于第一预设时间阈值;在距离获取首个所述待加密数据的时间的时间间隔小于所述第一预设时间阈值时,继续获取其他的待加密数据。

实施例四

本发明的实施例四提供了一种数据解密装置,该数据解密装置与上述实施例二相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例二。具体地,图4示意性示出了根据本发明实施例四的数据解密装置的框图,如图4所示,该数据解密装置400可以包括接收模块401、调用模块402、第二判断模块403、第三获取模块404和拆分模块405,其中:

接收模块401,用于接收对端设备发送的报文;

调用模块402,用于调用预设加密算法对所述报文中携带的待解密数据解密,得到已解密数据;

第二判断模块403,用于判断是否需要对所述已解密数据进行拆分;

第三获取模块404,用于在需要对所述已解密数据拆分时,获取所述报文携带的位置信息;

拆分模块405,用于将每个所述位置信息的排列顺序作为拆分顺序,依次从所述已解密数据中拆分出与每个所述位置信息相对应的数据,得到每个所述位置信息的已解密子数据。

可选地,第二判断模块还用于:判断所述报文是否携带有合并标识;相应地,第三获取模块还用于:在所述报文携带有所述合并标识时,获取所述报文携带的位置信息。

实施例五

本发明的实施例五提供了一种数据传输系统,该数据传输系统与上述实施例一和实施例二相对应,相应的技术特征和技术效果在本实施例中不再详述,相关之处可参考上述实施例一和实施例二。具体地,图5示意性示出了根据本发明实施例五的数据传输系统的框图,如图5所示,该数据传输系统500可以包括发送端501和接收端502,其中:

所述发送端501用于:获取目标数据,确定获取到的所有所述目标数据的长度总和,作为第一长度总和,判断所述第一长度总和是否大于等于第一预设长度阈值,在所述第一长度总和小于所述第一预设长度阈值时,继续获取其他的目标数据,直至所述第一长度总和大于等于所述第一预设长度阈值,在所述第一长度总和大于等于所述第一预设长度阈值时,调用对称加密算法对获取到的所有所述目标数据加密,得到已加密总数据,确定调用所述预设加密算法对获取到的所有所述目标数据加密时每个所述目标数据的位置信息,根据所述已加密总数据和每个所述待加密数据的位置信息构建一个报文;

所述接收端502用于:接收所述发送端501发送的所述报文,调用预设加密算法对所述报文中携带的已加密总数据解密,得到已解密数据,判断是否需要对所述已解密数据进行拆分,在需要对所述已解密数据拆分时,获取所述报文携带的位置信息,将每个所述位置信息的排列顺序作为拆分顺序,依次从所述已解密数据中拆分出与每个所述位置信息相对应的数据,得到每个所述位置信息对应的所述目标数据。

可选地,所述发送端在执行根据所述已加密总数据和每个所述待加密数据的位置信息构建一个报文的步骤时,还用于:获取合并标识,其中,所述合并标识表征所述已加密总数据是通过所述预设加密算法对获取到的所有所述待加密数据加密得到的,根据所述已加密总数据、每个所述待加密数据的位置信息和所述合并标识构建一个所述报文;所述接收端在执行判断是否需要对所述已解密数据进行拆分的步骤时,还用于:判断所述报文是否携带有所述合并标识;所述接收端在执行在需要对所述已解密数据拆分时,获取所述报文携带的位置信息的步骤时,还用于:在所述报文携带有所述合并标识时,获取所述报文携带的位置信息。

可选地,所述预设加密算法为对称加密算法,所述发送端在根据所述已加密总数据和每个所述待加密数据的位置信息构建至少一个报文时,还用于:将每个所述待加密数据的位置信息的排列顺序作为拆分顺序,依次从所述已加密总数据中拆分出与每个所述待加密数据的长度相对应的数据,得到每个所述待加密数据的已加密数据;根据拆分出的任一所述已加密数据构建一个所述报文;相应地,所述接收端还用于:在判断是否需要对所述已解密数据进行拆分的步骤之后,在不需要对所述已解密数据拆分时,将所述已解密数据作为最终的解密数据。

可选地,所述发送端在执行在所述长度总和小于所述第一预设长度阈值时,继续获取其他的待加密数据的步骤时,还用于:在所述长度总和小于所述第一预设长度阈值时,从截止到当前时间获取到的所有所述待加密数据中,确定获取首个所述待加密数据的时间;判断距离获取首个所述待加密数据的时间的时间间隔是否大于等于第一预设时间阈值;在距离获取首个所述待加密数据的时间的时间间隔小于所述第一预设时间阈值时,继续获取其他的待加密数据。

实施例六

图6示意性示出了根据本发明实施例六的适于实现数据加密方法和/或数据解密方法的计算机设备的框图。本实施例中,计算机设备600可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图6所示,本实施例的计算机设备600至少包括但不限于:可通过系统总线相互通信连接的存储器601、处理器602、网络接口603。需要指出的是,图6仅示出了具有组件601-603的计算机设备600,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

本实施例中,存储器603至少包括一种类型的计算机可读存储介质,可读存储介质包括包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器601可以是计算机设备600的内部存储单元,例如该计算机设备600的硬盘或内存。在另一些实施例中,存储器601也可以是计算机设备600的外部存储设备,例如该计算机设备600上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,存储器601还可以既包括计算机设备600的内部存储单元也包括其外部存储设备。在本实施例中,存储器601通常用于存储安装于计算机设备600的操作系统和各类应用软件,例如数据加密方法的程序代码和/或数据解密方法的程序代码等。此外,存储器601还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器602在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器602通常用于控制计算机设备600的总体操作。例如执行与计算机设备600进行数据交互或者通信相关的控制和处理等的数据加密方法的程序代码和/或数据解密方法的程序代码。

在本实施例中,存储于存储器601中的数据加密方法和/或数据解密方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器602)所执行,以完成本发明。

网络接口603可包括无线网络接口或有线网络接口,该网络接口603通常用于在计算机设备600与其他计算机设备之间建立通信链接。例如,网络接口603用于通过网络将计算机设备600与外部终端相连,在计算机设备600与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(globalsystemofmobilecommunication,简称为gsm)、宽带码分多址(widebandcodedivisionmultipleaccess,简称为wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。

实施例七

本实施例七还提供一种计算机可读存储介质,包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等,其上存储有计算机程序,所述计算机程序被处理器执行时实现数据加密方法和/或数据解密方法。

显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。

本发明上述实施例序号仅仅为了描述,并不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。


技术特征:

1.一种数据加密方法,其特征在于,所述方法包括:

获取待加密数据;

确定获取到的所有所述待加密数据的长度总和;

判断所述长度总和是否大于等于第一预设长度阈值;

在所述长度总和小于所述第一预设长度阈值时,继续获取其他的待加密数据,直至所述长度总和大于等于所述第一预设长度阈值;

在所述长度总和大于等于所述第一预设长度阈值时,调用预设加密算法对获取到的所有所述待加密数据加密,得到已加密总数据。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

确定调用所述预设加密算法对获取到的所有所述待加密数据加密时每个所述待加密数据的位置信息;

根据所述已加密总数据和每个所述待加密数据的位置信息构建报文。

3.根据权利要求2所述的方法,其特征在于,根据所述已加密总数据和每个所述待加密数据的位置信息构建报文的步骤包括:

获取合并标识,其中,所述合并标识表征所述已加密总数据是通过所述预设加密算法对获取到的所有所述待加密数据加密得到的;

根据所述已加密总数据、每个所述待加密数据的位置信息和所述合并标识构建所述报文。

4.根据权利要求1所述的方法,其特征在于,在所述长度总和小于所述第一预设长度阈值时,继续获取其他的待加密数据的步骤包括:

在所述长度总和小于所述第一预设长度阈值时,从截止到当前时间获取到的所有所述待加密数据中,确定获取首个所述待加密数据的时间;

判断距离获取首个所述待加密数据的时间的时间间隔是否大于等于第一预设时间阈值;

在距离获取首个所述待加密数据的时间的时间间隔小于所述第一预设时间阈值时,继续获取其他的待加密数据。

5.一种数据解密方法,其特征在于,所述方法包括:

接收对端设备发送的报文;

调用预设加密算法对所述报文中携带的待解密数据解密,得到已解密数据;

判断是否需要对所述已解密数据进行拆分;

在需要对所述已解密数据拆分时,获取所述报文携带的位置信息;

将每个所述位置信息的排列顺序作为拆分顺序,依次从所述已解密数据中拆分出与每个所述位置信息相对应的数据,得到每个所述位置信息的已解密子数据。

6.根据权利要求5所述的方法,其特征在于,

判断是否需要对所述已解密数据进行拆分的步骤包括:判断所述报文是否携带有合并标识;

相应地,在需要对所述已解密数据拆分时,获取所述报文携带的位置信息的步骤包括:在所述报文携带有所述合并标识时,获取所述报文携带的位置信息。

7.一种数据传输系统,其特征在于,包括发送端和接收端,其中:

所述发送端用于:获取目标数据,确定获取到的所有所述目标数据的长度总和,作为第一长度总和,判断所述第一长度总和是否大于等于第一预设长度阈值,在所述第一长度总和小于所述第一预设长度阈值时,继续获取其他的目标数据,直至所述第一长度总和大于等于所述第一预设长度阈值,在所述第一长度总和大于等于所述第一预设长度阈值时,调用对称加密算法对获取到的所有所述目标数据加密,得到已加密总数据,确定调用所述预设加密算法对获取到的所有所述目标数据加密时每个所述目标数据的位置信息,根据所述已加密总数据和每个所述待加密数据的位置信息构建一个报文;

所述接收端用于:接收所述发送端发送的所述报文,调用预设加密算法对所述报文中携带的已加密总数据解密,得到已解密数据,判断是否需要对所述已解密数据进行拆分,在需要对所述已解密数据拆分时,获取所述报文携带的位置信息,将每个所述位置信息的排列顺序作为拆分顺序,依次从所述已解密数据中拆分出与每个所述位置信息相对应的数据,得到每个所述位置信息对应的所述目标数据。

8.根据权利要求7所述的系统,其特征在于,

所述发送端在执行根据所述已加密总数据和每个所述待加密数据的位置信息构建一个报文的步骤时,还用于:获取合并标识,其中,所述合并标识表征所述已加密总数据是通过所述预设加密算法对获取到的所有所述待加密数据加密得到的,根据所述已加密总数据、每个所述待加密数据的位置信息和所述合并标识构建一个所述报文;

所述接收端在执行判断是否需要对所述已解密数据进行拆分的步骤时,还用于:判断所述报文是否携带有所述合并标识;

所述接收端在执行在需要对所述已解密数据拆分时,获取所述报文携带的位置信息的步骤时,还用于:在所述报文携带有所述合并标识时,获取所述报文携带的位置信息。

9.一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述的方法和/或权利要求5至6任一项所述的方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述的方法和/或权利要求5至6任一项所述的方法。

技术总结
本发明公开了一种数据加密方法,能够降低相关技术中调用国密算法的次数并提升系统性能,该方法包括:获取待加密数据;确定获取到的所有待加密数据的长度总和;判断长度总和是否大于等于第一预设长度阈值;在长度总和小于第一预设长度阈值时,继续获取其他的待加密数据,直至长度总和大于等于第一预设长度阈值;在长度总和大于等于第一预设长度阈值时,调用预设加密算法对获取到的所有待加密数据加密,得到已加密总数据。本公开还提供了一种数据解密方法、一种数据传输系统以及一种计算机设备。

技术研发人员:沈唤勇;高延雨
受保护的技术使用者:奇安信科技集团股份有限公司;网神信息技术(北京)股份有限公司
技术研发日:2020.01.09
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-19499.html

最新回复(0)