一种网络通信的动态加密与解密方法与流程

文档序号:15625099发布日期:2018-10-09 22:47阅读:345来源:国知局

本发明涉及网络通信领域,尤指一种网络通信的动态加密与解密方法。



背景技术:

目前在各行各业中都广泛使用计算机网络通信技术,计算机网络已成为人们生活中不可或缺的重要内容,人们对计算机网络的依赖性不断提高,计算机网络通信的安全性受到越来越多的关注。数据加密技术是保障计算机网络通信安全的重要技术手段和防护策略,利用数据加密技术不仅可以有效地确保数据的完整性和保密性,提高信息的安全系数,而且还能够确保计算机网络通信技术的健康有序发展。

现有技术中,客户端与服务器端需要提前约定好加解密的密钥、加解密的混淆值以及加密的算法,当客户端需要发送请求时,客户端利用这些之前约定好的加密的密钥、混淆值、以及加密算法对请求的数据进行加密,加密后发送给服务器,服务器收到请求的数据后再利用约定好的算法、密钥、混淆值进行解密。在此技术方案的实现中要保证密钥、混淆值、以及加密算法的安全性,只有有效的确保了密钥的安全性,才能确保对称式加密方法能够有效的进行运用,确保网络通信信息的安全。一旦密钥的安全得不到有效的保障,那么对称式加密的重要作用也就失去了具体的作用,所以存在的较高被破解的风险。

此外,现有技术中还可以直接使用ssl进行通讯,从可信任的第三方购买硬件key,再利用第三方的工具进行服务器和客户端的各类证书的生成,并且将客户端的证书写入key中,客户端和服务器端进行通讯时首先需要校验证书的合法性,并使用key中的密钥对数据进行加密,加密后的数据发送给服务器端。在此技术方案的实现中首先第三方的ca一定是可信的,并且第三方也要是安全的,对硬件key的依赖性很强,可能某些场景不是很适用,因为带了一个小硬件,可能存在丢失、损坏的可能,丢失损坏后则必须要更换,硬件需要采购,采购就需要有成本投入,特别是当客户端很多,并且发放不易的地方成本投入很高。



技术实现要素:

为了解决目前网络通信安全性差、适用性低及成本高等问题,本发明实施例提供一种网络通信的动态加密与解密方法。其中,本发明实施例提供一种网络通信的动态加密方法,所述方法包括:

根据固定字符及时间戳动态生成签名源数据;

随机生成一密钥种子与一混淆值种子;

根据所述密钥种子在密钥池中获取一密钥,并根据所述混淆值种子在混淆值池中获取一混淆值;

在加密算法池中随机选取一加密算法,利用所述加密算法,根据所述密钥及混淆值,对所述签名源数据进行加密,并对加密后的签名源数据进行签名,得到签名加密数据;

利用所述加密算法,根据所述密钥及混淆值对请求源数据进行加密,得到一请求加密数据;

将所述时间戳、所述密钥种子、所述混淆值种子、所述签名加密数据与所述请求加密数据发送至服务器。

本发明实施例还提供一种网络通信的动态解密方法,所述方法包括:

接收客户端发送的时间戳、第一密钥种子、第一混淆值种子、第一签名加密数据与请求加密数据;

根据所述第一密钥种子在密钥池中获取第一密钥,并根据所述第一混淆值种子在混淆值池中获取第一混淆值;

根据固定字符与所述时间戳生成一签名源数据,根据所述第一密钥、所述第一混淆值,利用加密算法池中的算法分别对所述签名源数据进行加密,并对加密后的签名数据进行签名,得到多个第二签名加密数据;

依次判断所述第一签名加密数据与各所述第二签名数据是否一致;在所述第一签名加密数据与所述第二签名数据一致时,将所使用的所述加密算法池中的算法作为加密算法;

利用所述加密算法,根据所述第一密钥及第一混淆值对所述请求加密数据进行解密,得到请求源数据;

根据所述请求源数据生成一回包源数据,并将所述回包源数据发送给所述客户端。

本发明实施例还提供一种客户端,所述客户端包括:

签名源数据模块,用于根据固定字符及时间戳动态生成签名源数据;

种子选取模块,用于随机生成一密钥种子与一混淆值种子;

参数选取模块,用于根据所述密钥种子在密钥池中获取一密钥,并根据所述混淆值种子在混淆值池中获取一混淆值;

签名源数据加密模块,用于在加密算法池中随机选取一加密算法,利用所述加密算法,根据所述密钥及混淆值,对所述签名源数据进行加密,并对加密后的签名源数据进行签名,得到第一签名加密数据;

请求源数据加密模块,用于利用所述加密算法,根据所述密钥及混淆值对请求源数据进行加密,得到一请求加密数据;

发送模块,用于将所述时间戳、所述密钥种子、所述混淆值种子、所述第一签名加密数据与所述请求加密数据发送至服务器。

本发明实施例还提供一种服务器,所述服务器包括:

数据接收模块,用于接收客户端发送的时间戳、第一密钥种子、第一混淆值种子、第一签名加密数据与请求加密数据;

参数选取模块,用于根据所述第一密钥种子在密钥池中获取第一密钥,并根据所述第一混淆值种子在混淆值池中获取第一混淆值;

签名源数据加密模块,用于根据固定字符与所述时间戳生成一签名源数据,根据所述第一密钥、所述第一混淆值,利用加密算法池中的算法分别对所述签名源数据进行加密,并对加密后的签名数据进行签名,得到多个第二签名加密数据;

判断模块,用于依次判断所述第一签名加密数据与各所述第二签名数据是否一致;

算法选取模块,用于在所述第一签名加密数据与所述第二签名数据一致时,将所使用的所述加密算法池中的算法作为加密算法;

解密模块,用于利用所述加密算法,根据所述第一密钥及第一混淆值对所述请求加密数据进行解密,得到请求源数据;

发送模块,用于根据所述请求源数据生成一回包源数据,并将所述回包源数据发送给所述客户端。

本发明通过在网络通信时,利用动态加密解密的方式,使得通信双方使用的密钥、加密算法等重要信息具有极大的随机性,在保证不影响通信效率的同时,极大的提高了通信的安全性,有效的降低了成本,并且在各种网络通信场景下的均具有良好的适用性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一种网络通信的动态加密方法的流程图;

图2为本发明实施例一种网络通信的动态解密方法的流程图;

图3为本发明实施例一种客户端的结构示意图;

图4为本发明实施例一种服务器的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示为本发明实施例一种网络通信的动态加密方法的流程图,图中所示方法包括:

步骤s11,根据固定字符及时间戳动态生成签名源数据;

步骤s12,随机生成一密钥种子与一混淆值种子;

步骤s13,根据所述密钥种子在密钥池中获取一密钥,并根据所述混淆值种子在混淆值池中获取一混淆值;

步骤s14,在加密算法池中随机选取一加密算法,利用所述加密算法,根据所述密钥及混淆值,对所述签名源数据进行加密,并对加密后的签名源数据进行签名,得到签名加密数据;

步骤s15,利用所述加密算法,根据所述密钥及混淆值对请求源数据进行加密,得到一请求加密数据;

步骤s16,将所述时间戳、所述密钥种子、所述混淆值种子、所述签名加密数据与所述请求加密数据发送至服务器。

在本实施例中,签名源数据由固定字符与时间戳生成,其中固定字符可以由字母组成,例如“abcd”,也可以由数字组成,例如“1234”,还可以由字母与数字的组合组成,例如“abcd1234”或“1a2b3c4d”等等。固定字符长度不做限定,可以根据实际使用情况设置。将预先设置好的固定字符,与当前时间对应的时间戳组合,即可生成签名源数据。

密钥种子及混淆值种子,与密钥池中的密钥、混淆值池中的密钥及混淆值是一一对应的关系。密钥种子与混淆值种子可以为数字,例如“1”、“12”等,也可以为字母“a”、“ab”等。在随机选取密钥种子与混淆值种子之后,可以根据该密钥种子与混淆值种子,在存储有多个密钥的密钥池中及存储有多个混淆值的混淆值中,匹配出其对应的密钥与混淆值。

加密算法池中存储有多个加密算法,在加密算法池中随机选取出一个加密算法。根据该加密算法,并利用上述步骤中选取出的密钥与混淆值,对签名源数据进行加密,并对加密后的签名源数据进行签名,由此得到签名加密数据。同时,根据该加密算法,并利用上述步骤中选取出的密钥与混淆值,对请求源数据进行加密,得到请求加密数据。其中,请求源数据为所要加密保护的目标数据。最后,将签名加密数据、时间戳、密钥种子、混淆值种子及请求加密数据发送至服务器端。

作为本发明的一个实施例,该方法还包括根据预定义规则生成所述密钥池与所述混淆值池。其中,预定义规则可以包括输入数据与预设算法,输入数据可以为例如随机数,将输入数据输入至预设算法中,可以得到相应的多个结果,该多个结果组成了密钥池与混淆值池。

作为本发明的一个实施例,所述在加密算法池中随机选取一加密算法之前,校验并加载所述加密算法池中所有的加密算法。其中,所有加密算法需经过校验,即双向身份认证后,从本地加载进入加密算法池,以此确保加密算法不会被泄露。

在本实施例中,将所述时间戳、所述密钥种子、所述混淆值种子、所述签名加密数据与所述请求加密数据发送至服务器,包括:

根据http协议,将所述时间戳、所述密钥种子、所述混淆值种子、所述签名加密数据与所述请求加密数据转换为发送数据;

将所述时间戳、所述密钥种子、所述混淆值种子与所述签名加密数据设置于所述发送数据的请求头中,并将所述请求加密数据设置于所述发送数据的请求体中;

将所述发送数据发送至服务器。

其中,在发送数据之前,需要对所发送的数据进行转换,根据http协议,将时间戳、密钥种子、混淆值种子与签名加密数据设置于发送数据的请求头中,便于发送至服务器端后,服务器可以直接从请求头中获取上述信息。将请求加密数据设置于请求体中,以便服务器获取后对请求加密数据进行解密。

通过本发明上述方法,通过随机选取密钥、混淆值与加密算法,对需要请求源数据进行加密,使得加密后的数据安全性大大提升。并且本发明上述方法便于实现,在不影响加密效率的同时,还具有良好的适用性,并且还可降低成本。

如图2所示为本发明实施例一种网络通信的动态解密方法的流程图,图中所示方法包括:

步骤s21,接收客户端发送的时间戳、第一密钥种子、第一混淆值种子、第一签名加密数据与请求加密数据;

步骤s22,根据所述第一密钥种子在密钥池中获取第一密钥,并根据所述第一混淆值种子在混淆值池中获取第一混淆值;

步骤s23,根据固定字符与所述时间戳生成一签名源数据,根据所述第一密钥、所述第一混淆值,利用加密算法池中的算法分别对所述签名源数据进行加密,并对加密后的签名数据进行签名,得到多个第二签名加密数据;

步骤s24,依次判断所述第一签名加密数据与各所述第二签名数据是否一致;在所述第一签名加密数据与所述第二签名数据一致时,将所使用的所述加密算法池中的算法作为加密算法;

步骤s25,利用所述加密算法,根据所述第一密钥及第一混淆值对所述请求加密数据进行解密,得到请求源数据;

步骤s26,根据所述请求源数据生成一回包源数据,并将所述回包源数据发送给所述客户端。

在本实施例中,接收数据后,根据接收到的第一密钥种子,在密钥池中选取出与之相匹配的第一密钥,并根据接收到的第一混淆值种子,在混淆值池中找出与之相匹配的第一混淆值。其中,密钥种子与密钥池中的密钥为一一对应的关系,混淆值种子与混淆值池中的混淆值为意义对应的关系。密钥种子与混淆值种子可以为数字,例如“1”、“12”等,也可以为字母“a”、“ab”等。其中,密钥池与混淆值池是根据预定义规则生成的,该预定义规则与客户端中的预定义规则保持一致。

根据接收到的时间戳与本地的固定字符生成签名源数据,其中固定字符可以由字母组成,例如“abcd”,也可以由数字组成,例如“1234”,还可以由字母与数字的组合组成,例如“abcd1234”或“1a2b3c4d”等等。固定字符长度不做限定,可以根据实际使用情况设置。将预先设置好的固定字符,与接收到时间戳进行组合,即可生成签名源数据。其中,该固定字符与客户端中的固定字符保持一致。

生成签名源数据之后,根据第一密钥与第一混淆值,以及加密算法池中的算法对签名源数据进行加密,并对加密后的签名源数据进行签名,可以得到多个第二签名加密数据。加密过程需遍历加密算法池中的算法,即,每一加密算法池中的算法会对应生成一个第二签名加密数据,将生成的多个第二加密数据逐一与接收到的第一签名加密数据进行比较。当第二签名加密数据与第一签名加密数据一致时,此时的第二加密数据对应的算法为加密算法,并根据该加密算法,利用第一密钥及第一混淆值对接收到的请求加密数据进行解密,由此得到请求源数据。对该请求源数据进行相应的处理,可以得到回包源数据,即回应于请求源数据的返回数据,并将该回包源数据发送给客户端。

作为本发明的一个实施例,在将所述回包源数据发送给所述客户端之前,根据所述加密算法、第一密钥与第一混淆值,对所述回包源数据进行加密。为保证返回客户端的数据安全,需要对回包源数据进行加密。在本实施例中,利用客户端加密时所采用的加密算法、第一密钥及第一混淆值对回包源数据进行加密,并将加密后的回包源数据发送至客户端。

作为本发明的一个实施例,在将所述回包源数据发送给所述客户端之前,随机选取第二密钥种子与第二混淆值种子,根据所述第二密钥种子在密钥池中获取第二密钥,根据所述的第二混淆值种子在混淆值池中获取第二混淆值;根据所述加密算法,利用所述第二密钥及第二混淆值,对所述回包源数据进行加密。

在本实施例中,对回包源数据进行加密时,采用客户端加密时所采用的加密算法,但重新选取了密钥与混淆值。即生成第二密钥种子与第二混淆值,并在密钥池与混淆值池中找出相对应的第二密钥与第二混淆值。根据加密算法,利用第二密钥及第二混淆值对回包源数据加密,将加密后的回包源数据发送至客户端。

进一步的,在本实施例中还可同时更换加密算法、密钥与混淆值,即在加密算法池中重新随机选取一个加密算法,在利用重新选取的密钥与混淆值对回包源数据进行加密。其中,为了便于客户端对加密后的回包源数据进行解密,可依照客户端的加密方法,再次重新生成一个签名加密数据发送至客户端。此外,还可不更换密钥与混淆值,仅更换加密算法后对回包源数据进行加密,类似的,也需要根据更换后的加密算法生成一个签名加密数据,将其与加密后的回包源数据同时发送至客户端。

在本实施例中,所述将所述回包源数据发送给所述客户端包括:

根据http协议,将所述第二密钥种子、所述第二混淆值种子与所述加密后的回包源数据转换为返回数据;

所述第二密钥种子与所述第二混淆值种子设置于所述返回数据的请求头中,并将所述加密后的回包源数据设置于所述返回数据的请求体中。

其中,在发送加密后的回包源数据之前,需要对所返回数据进行转换,根据http协议,将第二密钥种子及第二混淆值种子设置于返回数据的请求头中,便于发送至客户端后,可以直接从请求头中获取上述信息。将加密后的回包源数据设置于返回数据的请求体中,以便客户端获取后对该数据进行解密。

进一步的,若更换了加密回包源数据使用的加密算法,需将加密时使用的时间戳与签名加密数据设置于返回数据的请求头中。

作为本发明的一个实施例,所述方法还包括在加密算法池中随机选取一加密算法作为约定加密算法,将所述约定加密算法发送给所述客户端。为了提高加密效率,在返回回包源数据时,可与客户端约定下次通信时所使用的加密算法,以此减少通信时所花的时间,并减少数据传输量。

通过本发明上述方法,通过接收客户端发送的密钥、混淆值,对签名加密数据进行加密,由此找到客户端所使用的加密算法,并对请求源数据进行解密,在回包源数据发送至客户端,由此实现完整的通信加密与解密的过程。通过本发明中的方法,可以使得加密后的数据安全性大大提升,并且本发明的方法便于实现,在不影响加密效率的同时,还具有良好的适用性,并且还可降低成本。

如图3所示为本发明实施例一种客户端的结构示意图,图中所示的客户端包括:

签名源数据模块11,用于根据固定字符及时间戳动态生成签名源数据;

种子选取模块12,用于随机生成一密钥种子与一混淆值种子;

参数选取模块13,用于根据所述密钥种子在密钥池中获取一密钥,并根据所述混淆值种子在混淆值池中获取一混淆值;

签名源数据加密模块14,用于在加密算法池中随机选取一加密算法,利用所述加密算法,根据所述密钥及混淆值,对所述签名源数据进行加密,并对加密后的签名源数据进行签名,得到第一签名加密数据;

请求源数据加密模块15,用于利用所述加密算法,根据所述密钥及混淆值对请求源数据进行加密,得到一请求加密数据;

发送模块16,用于将所述时间戳、所述密钥种子、所述混淆值种子、所述第一签名加密数据与所述请求加密数据发送至服务器。

在本实施例中,签名源数据由固定字符与时间戳生成,其中固定字符可以由字母组成,例如“abcd”,也可以由数字组成,例如“1234”,还可以由字母与数字的组合组成,例如“abcd1234”或“1a2b3c4d”等等。固定字符长度不做限定,可以根据实际使用情况设置。将预先设置好的固定字符,与当前时间对应的时间戳组合,即可生成签名源数据。

密钥种子及混淆值种子,与密钥池中的密钥、混淆值池中的密钥及混淆值是一一对应的关系。密钥种子与混淆值种子可以为数字,例如“1”、“12”等,也可以为字母“a”、“ab”等。在随机选取密钥种子与混淆值种子之后,可以根据该密钥种子与混淆值种子,在存储有多个密钥的密钥池中及存储有多个混淆值的混淆值中,匹配出其对应的密钥与混淆值。

加密算法池中存储有多个加密算法,在加密算法池中随机选取出一个加密算法。根据该加密算法,并利用上述步骤中选取出的密钥与混淆值,对签名源数据进行加密,并对加密后的签名源数据进行签名,由此得到签名加密数据。同时,根据该加密算法,并利用上述步骤中选取出的密钥与混淆值,对请求源数据进行加密,得到请求加密数据。其中,请求源数据为所要加密保护的目标数据。最后,将签名加密数据、时间戳、密钥种子、混淆值种子及请求加密数据发送至服务器端。

作为本发明的一个实施例,所述客户端还包括参数生成模块17,用于根据预定义规则生成所述密钥池与所述混淆值池。其中,预定义规则可以包括输入数据与预设算法,输入数据可以为例如随机数,将输入数据输入至预设算法中,可以得到相应的多个结果,该多个结果组成了密钥池与混淆值池。

作为本发明的一个实施例,所述客户端还包括校验模块18,用于所述在加密算法池中随机选取一加密算法之前,校验并加载所述加密算法池中所有的加密算法。其中,所有加密算法需经过校验,即双向身份认证后,从本地加载进入加密算法池,以此确保加密算法不会被泄露。

作为本发明的一个实施例,所述发送模块还用于根据http协议,将所述时间戳、所述密钥种子、所述混淆值种子、所述第一签名加密数据与所述请求加密数据转换为发送数据;

将所述时间戳、所述密钥种子、所述混淆值种子与所述第一签名加密数据设置于所述发送数据的请求头中,并将所述请求加密数据设置于所述发送数据的请求体中;

将所述发送数据发送至服务器。

其中,在发送数据之前,需要对所发送的数据进行转换,根据http协议,将时间戳、密钥种子、混淆值种子与签名加密数据设置于发送数据的请求头中,便于发送至服务器端后,服务器可以直接从请求头中获取上述信息。将请求加密数据设置于请求体中,以便服务器获取后对请求加密数据进行解密。

通过本发明上述客户端,通过随机选取密钥、混淆值与加密算法,对需要请求源数据进行加密,使得加密后的数据安全性大大提升。并且本发明上述客户端中的加密过程便于实现,在不影响加密效率的同时,还具有良好的适用性,并且还可降低成本。

如图4所示为本发明实施例一种服务器的结构示意图,图中所示的服务器包括:

数据接收模块21,用于接收客户端发送的时间戳、第一密钥种子、第一混淆值种子、第一签名加密数据与请求加密数据;

参数选取模块22,用于根据所述第一密钥种子在密钥池中获取第一密钥,并根据所述第一混淆值种子在混淆值池中获取第一混淆值;

签名源数据加密模块23,用于根据固定字符与所述时间戳生成一签名源数据,根据所述第一密钥、所述第一混淆值,利用加密算法池中的算法分别对所述签名源数据进行加密,并对加密后的签名数据进行签名,得到多个第二签名加密数据;

判断模块24,用于依次判断所述第一签名加密数据与各所述第二签名数据是否一致;

算法选取模块25,用于在所述第一签名加密数据与所述第二签名数据一致时,将所使用的所述加密算法池中的算法作为加密算法;

解密模块26,用于利用所述加密算法,根据所述第一密钥及第一混淆值对所述请求加密数据进行解密,得到请求源数据;

发送模块27,用于根据所述请求源数据生成一回包源数据,并将所述回包源数据发送给所述客户端。

在本实施例中,数据接收模块21接收数据后,根据接收到的第一密钥种子,在密钥池中选取出与之相匹配的第一密钥,并根据接收到的第一混淆值种子,在混淆值池中找出与之相匹配的第一混淆值。其中,密钥种子与密钥池中的密钥为一一对应的关系,混淆值种子与混淆值池中的混淆值为意义对应的关系。密钥种子与混淆值种子可以为数字,例如“1”、“12”等,也可以为字母“a”、“ab”等。其中,密钥池与混淆值池是根据预定义规则生成的,该预定义规则与客户端中的预定义规则保持一致。

根据接收到的时间戳与本地的固定字符生成签名源数据,其中固定字符可以由字母组成,例如“abcd”,也可以由数字组成,例如“1234”,还可以由字母与数字的组合组成,例如“abcd1234”或“1a2b3c4d”等等。固定字符长度不做限定,可以根据实际使用情况设置。将预先设置好的固定字符,与接收到时间戳进行组合,即可生成签名源数据。其中,该固定字符与客户端中的固定字符保持一致。

生成签名源数据之后,根据第一密钥与第一混淆值,以及加密算法池中的算法对签名源数据进行加密,并对加密后的签名源数据进行签名,可以得到多个第二签名加密数据。加密过程需遍历加密算法池中的算法,即,每一加密算法池中的算法会对应生成一个第二签名加密数据,将生成的多个第二加密数据逐一与接收到的第一签名加密数据进行比较。当第二签名加密数据与第一签名加密数据一致时,此时的第二加密数据对应的算法为加密算法,并根据该加密算法,利用第一密钥及第一混淆值对接收到的请求加密数据进行解密,由此得到请求源数据。对该请求源数据进行相应的处理,可以得到回包源数据,即回应于请求源数据的返回数据,并将该回包源数据发送给客户端。

作为本发明的一个实施例,所述发送模块27还用于在将所述回包源数据发送给所述客户端之前,根据所述加密算法、第一密钥与第一混淆值,对所述回包数据进行加密。为保证返回客户端的数据安全,需要对回包源数据进行加密。在本实施例中,利用客户端加密时所采用的加密算法、第一密钥及第一混淆值对回包源数据进行加密,并将加密后的回包源数据发送至客户端。

作为本发明的一个实施例,所述发送模块27还用于在将所述回包源数据发送给所述客户端之前,随机选取第二密钥种子与第二混淆值种子,根据所述第二密钥种子在密钥池中获取第二密钥,根据所述的第二混淆值种子在混淆值池中获取第二混淆值;根据所述加密算法,利用所述第二密钥及第二混淆值,对所述回包源数据进行加密。

在本实施例中,对回包源数据进行加密时,采用客户端加密时所采用的加密算法,但重新选取了密钥与混淆值。即生成第二密钥种子与第二混淆值,并在密钥池与混淆值池中找出相对应的第二密钥与第二混淆值。根据加密算法,利用第二密钥及第二混淆值对回包源数据加密,将加密后的回包源数据发送至客户端。

进一步的,在本实施例中还可同时更换加密算法、密钥与混淆值,即在加密算法池中重新随机选取一个加密算法,在利用重新选取的密钥与混淆值对回包源数据进行加密。其中,为了便于客户端对加密后的回包源数据进行解密,可依照客户端的加密方法,再次重新生成一个签名加密数据发送至客户端。此外,还可不更换密钥与混淆值,仅更换加密算法后对回包源数据进行加密,类似的,也需要根据更换后的加密算法生成一个签名加密数据,将其与加密后的回包源数据同时发送至客户端。

在本实施例中,所述发送模块27还用于:

根据http协议,将所述第二密钥种子、所述第二混淆值种子与所述加密后的回包源数据转换为返回数据;

所述第二密钥种子与所述第二混淆值种子设置于所述返回数据的请求头中,并将所述加密后的回包源数据设置于所述返回数据的请求体中。

其中,在发送加密后的回包源数据之前,需要对所返回数据进行转换,根据http协议,将第二密钥种子及第二混淆值种子设置于返回数据的请求头中,便于发送至客户端后,可以直接从请求头中获取上述信息。将加密后的回包源数据设置于返回数据的请求体中,以便客户端获取后对该数据进行解密。

进一步的,若更换了加密回包源数据使用的加密算法,需将加密时使用的时间戳与签名加密数据设置于返回数据的请求头中。

作为本发明的一个实施例,所述算法选取模块25还用于在加密算法池中随机选取一加密算法作为约定加密算法,并将所述约定加密算法发送至所述发送模块27,所述发送模块27将所述约定加密算法发送给所述客户端。

在本实施例中,为了提高加密效率,在返回回包源数据时,可与客户端约定下次通信时所使用的加密算法,以此减少通信时所花的时间,并减少数据传输量。

此外,本发明可采用c/s架构模式,为了保证在定制linux系统下的系统安全,当本发明中的加密与解密方法检查到定制linux系统中被修改时,客户端需要将检查到的数据发送到服务器,由此保证终端机的安全。

通过本发明上述服务器,通过接收客户端发送的密钥、混淆值,对签名加密数据进行加密,由此找到客户端所使用的加密算法,并对请求源数据进行解密,在回包源数据发送至客户端,由此实现完整的通信加密与解密的过程。通过本发明客户端与服务器中的加密与解密过程,可以使得加密后的数据安全性大大提升,并且本发明客户端与服务器中的加密与解密过程便于实现,在不影响加密效率的同时,还具有良好的适用性,并且还可降低成本。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,比如rom/ram、磁碟、光盘等。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1