一种流式数据加解密方法、装置、***及存储介质
技术领域
本发明涉及数据安全技术领域,尤其涉及一种流式数据加解密方法、装置、***及存储介质。
背景技术
数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文,数据加密技术的核心是密码学。数据加密仍是计算机***对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。
在不同***之间的数据交互,一般安全的做法是通过HTTPS进行数据保护,而一般缺少更深层的数据加密及解密过程,许多没有使用HTTPS协议进行数据保护的则更不安全,现有数据加密及解密都是以固定的密钥来进行加密及解密的,较为安全的加解密方式有AES和RSA,使用人只能设置复杂的密钥,并手动进行密钥更新及通知不同合作伙伴,来进行密钥更新策略。
发明内容
为了解决现有技术存在的问题,本发明的至少一个实施例提供了一种流式数据加解密方法、装置、***及存储介质。
第一方面,本发明实施例提供了一种流式数据加解密方法,应用于数据发送端,所述加解密方法包括:
当接收到数据接收端在认证通过后反馈的认证编码信息时,将数据发送端标识信息、预设置的至少两条第一共享信息和第一当前时间信息进行加密操作,得到第一加密信息;
将所述第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息;
针对至少一条第一共享信息,按第一预设规则从所述第一共享信息中提取子共享信息;
将至少一条所述子加密信息、第二加密信息和各个所述子共享信息合并得到加密密钥;
通过所述加密密钥对所述认证编码信息和所述流式数据进行加密,得到加密数据;
将所述数据发送端标识信息和所述加密数据发送至数据接收端。
基于上述技术方案,本发明实施例还可以做出如下改进。
结合第一方面,在第一方面的第一种实施例中,所述当接收到数据接收端在认证通过后反馈的认证编码信息时,将数据发送端标识信息、预设置的至少两条第一共享信息和第一当前时间信息进行加密操作,得到第一加密信息之前,所述加解密方法还包括:
将数据发送端标识信息、预设置的至少两条第二共享信息和第二当前时间信息进行加密操作,得到认证加密信息;
将所述认证加密信息和所述数据发送端标识信息发送到数据接收端。
结合第一方面的第一种实施例,在第一方面的第二种实施例中,所述将数据发送端标识信息、预设置的至少两条第二共享信息和第二当前时间信息进行加密操作,得到认证加密信息,包括:
S11、将所述数据发送端标识信息、任一所述第二共享信息和第二当前时间信息进行加密操作,得到认证子加密信息;
S12、将剩余所述第二共享信息合并组成第一共享信息集;
S13、从第一共享信息集中顺序获取所述第二共享信息,并将所述第二共享信息与前一次得到的所述认证子加密信息中的待加密信息进行加密操作,得到当前次的所述认证子加密信息;
S14、再次执行所述S13,直至第一共享信息集中的第二共享信息均被获取,得到当前次的所述认证子加密信息作为所述认证加密信息。
结合第一方面,在第一方面的第三种实施例中,所述将所述第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息,包括:
按第二预设规则从所述第一加密信息中提取至少一条第一字符信息,并计算每条第一字符信息的字节数;
将每个所述字节数与预设数值分别按预设计算方式进行计算,得到取长数值;
根据每个所述取长数值,分别从所述第一加密信息中提取第二字符信息;将所述第二字符信息和所述第一加密信息中未被提取的字符信息,均作为子加密信息;
基于所有子加密信息,计算得到所述第二加密信息。
结合第一方面或第一方面的第一、第二或第三种实施例,在第一方面的第四种实施例中,所述将数据发送端标识信息、预设置的至少两条第一共享信息和第一当前时间信息进行加密操作,得到第一加密信息,包括:
S21、将所述数据发送端标识信息、任一所述第一共享信息和第一当前时间信息进行加密操作,得到第一子加密信息;
S22、将剩余所述第一共享信息合并组成第二共享信息集;
S23、从所述第二共享信息集中顺序获取所述第一共享信息,并将所述第一共享信息与前一次得到的所述第一子加密信息中的待加密信息进行加密操作,得到当前次的所述第一子加密信息;
S24、再次执行所述S23,直至第二共享信息集中的第一共享信息均被获取,得到当前次的所述第一子加密信息作为所述第一加密信息。
第二方面,本发明实施例提供了一种流式数据加解密方法,应用于数据接收端,所述加解密方法包括:
当接收到数据发送端标识信息和加密数据时,将数据发送端标识信息、预设置的至少两条第一共享信息和第一调整时间信息进行加密操作,得到第一加密信息;其中,所述第一调整时间信息是按预设时间容差对第三当前时间信息调整得到;
将所述第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息;
针对至少一条第一共享信息,按第一预设规则从所述第一共享信息中提取子共享信息;
将至少一条所述子加密信息、第二加密信息和各个所述子共享信息合并得到解密密钥;
通过所述解密密钥对所述加密数据进行解密。
结合第二方面,在第二方面的第一种实施例中,当接收到数据发送端标识信息和加密数据时,将数据发送端标识信息、预设置的至少两条第一共享信息和第一调整时间信息进行加密操作,得到第一加密信息之前,所述加解密方法还包括:
当接收到数据发送端标识信息和认证加密信息时,将数据发送端标识信息、预设置的至少两条第二共享信息和第二调整时间信息进行加密操作,得到验证加密信息;其中,所述第二调整时间信息是按预设时间容差对第四当前时间信息调整得到;
判断所述验证加密信息和所述认证加密信息是否一致;
当所述验证加密信息和所述认证加密信息一致时,生成认证编码信息加密反馈至所述数据发送端;
当所述当所述验证加密信息和所述认证加密信息不一致时,生成认证失败信息反馈至所述数据发送端。
结合第二方面的第二种实施例,在第二方面的第二种实施例中,将数据发送端标识信息、预设置的至少两条第二共享信息和第二当前时间信息进行加密操作,得到验证加密信息,包括:
S31、将所述数据发送端标识信息、任一所述第二共享信息和第二调整时间信息进行加密操作,得到验证子加密信息;
S32、将剩余所述第二共享信息合并组成第一共享信息集;
S33、从第一共享信息集中顺序获取所述第二共享信息,并将所述第二共享信息与前一次得到的所述验证子加密信息中的待加密信息进行加密操作,得到当前次的所述验证子加密信息;
S34、再次执行所述S33,直至第一共享信息集中的第二共享信息均被获取,得到当前次的所述验证子加密信息作为所述验证加密信息。
结合第二方面,在第二方面的第三种实施例中,所述将所述第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息,包括:
按第二预设规则从所述第一加密信息中提取至少一条第一字符信息,并计算每条第一字符信息的字节数;
将每个所述字节数与预设数值分别按预设计算方式进行计算,得到取长数值;
根据每个所述取长数值,分别从所述第一加密信息中提取第二字符信息;将所述第二字符信息和所述第一加密信息中未被提取的字符信息,均作为子加密信息;
基于所有子加密信息,计算得到所述第二加密信息。
结合第二方面,在第二方面的第四种实施例中,所述加解密方法还包括:
若所述解密密钥对所述加密数据解密失败,则所述加密数据为非法数据;
若所述解密密钥对数所述加密数据解密成功,则判断所述加密数据解密得到的解密数据中是否包含所述认证编码信息且所述认证编码信息是否有效,若包含所述认证编码信息且所述认证编码信息有效,则将所述解密数据中除所述认证编码信息外的数据作为有效数据;若不包含所述认证编码信息或所述认证编码信息无效,则将所述解密数据作为无效数据。
结合第二方面或第二方面的第一、第二、第三或第四种实施例,在第二方面的第五种实施例中,所述将数据发送端标识信息、预设置的至少两条第一共享信息和第一调整时间信息进行加密操作,得到第一加密信息,包括:
S41、将所述数据发送端标识信息、任一所述第一共享信息和第一调整时间信息进行加密操作,得到第一子加密信息;
S42、将剩余所述第一共享信息合并组成第二共享信息集;
S43、从所述第二共享信息集中顺序获取所述第一共享信息,并将所述第一共享信息与前一次得到的所述第一子加密信息中的待加密信息进行加密操作,得到当前次的所述第一子加密信息;
S44、再次执行所述S43,直至第二共享信息集中的第一共享信息均被获取,得到当前次的所述第一子加密信息作为所述第一加密信息。
第三方面,本发明实施例提供了一种流式数据加解密装置,设置在数据发送端,所述加解密装置包括:
第一处理单元,用于当接收到数据接收端在认证通过后反馈的认证编码信息时,将数据发送端标识信息、预设置的至少两条第一共享信息和第一当前时间信息进行加密操作,得到第一加密信息;
第二处理单元,用于将所述第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息;
第三处理单元,用于针对至少一条第一共享信息,按第一预设规则从所述第一共享信息中提取子共享信息;
第四处理单元,用于将至少一条所述子加密信息、第二加密信息和各个所述子共享信息合并得到加密密钥;
加密单元,用于通过所述加密密钥对所述认证编码信息和所述流式数据进行加密,得到加密数据;
发送单元,用于将所述数据发送端标识信息和所述加密数据发送至数据接收端。
第四方面,本发明实施例提供了一种流式数据加解密装置,设置在数据接收端,所述加解密装置包括:
第五处理单元,用于当接收到数据发送端标识信息和加密数据时,将数据发送端标识信息、预设置的至少两条第一共享信息和第一调整时间信息进行加密操作,得到第一加密信息;其中,所述第一调整时间信息是按预设时间容差对第三当前时间信息调整得到;
第六处理单元,用于将所述第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息;
第七处理单元,用于针对至少一条第一共享信息,按第一预设规则从所述第一共享信息中提取子共享信息;
第八处理单元,用于将至少一条所述子加密信息、第二加密信息和各个所述子共享信息合并得到解密密钥;
解密密单元,用于通过所述解密密钥对所述加密数据进行解密。
第五方面,本发明实施例提供了一种流式数据加解密***,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面或第二方面中任一实施例所述的流式数据加解密方法。
第六方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面或第二方面中任一实施例所述的流式数据加解密方法。
本发明的上述技术方案与现有技术相比具有如下优点:本发明实施例给出了一种流式数据加解密方法,通过在数据发送端和数据接收端共享部分初始数据,数据发送端和数据接收端按预定义的方式进行变换和处理,使得非法用户无法知晓和获取数据发送端和数据接收端之间交互的数据,同时,避免固定式密钥被非法用户获取后,非法用户截取数据发端发送的数据或者根据密钥向数据接收端发送非法数据的情况,提高数据交互的安全性。
附图说明
图1是本发明实施例提供的一种流式数据加解密方法流程示意图;
图2是本发明另一实施例提供的一种流式数据加解密方法流程示意图;
图3是本发明又一实施例提供的一种流式数据加解密方法流程示意图其一;
图4是本发明又一实施例提供的一种流式数据加解密方法流程示意图其二;
图5是本发明又一实施例提供的一种流式数据加解密方法流程示意图其三;
图6是本发明又一实施例提供的一种流式数据加解密方法流程示意图其四;
图7是本发明又一实施例提供的一种流式数据加解密方法流程示意图其五;
图8是本发明又一实施例提供的一种流式数据加解密方法流程示意图其六;
图9是本发明又一实施例提供的一种流式数据加解密方法流程示意图其七;
图10是本发明又一实施例提供的一种流式数据加解密方法流程示意图其八;
图11是本发明又一实施例提供的一种流式数据加解密装置结构示意图;
图12是本发明又一实施例提供的一种流式数据加解密装置结构示意图;
图13是本发明又一实施例提供的一种流式数据加解密***结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种流式数据加解密方法,应用于数据发送端,参照图1,加解密方法包括如下步骤:
S110、当接收到数据接收端在认证通过后反馈的认证编码信息时,将数据发送端标识信息、预设置的至少两条第一共享信息和第一当前时间信息进行加密操作,得到第一加密信息。
在本实施例中,数据发送端只有在数据接收端认证通过后,并接收到数据接收端反馈的认证编码信息时,才会开始本步骤中得到中间加密信息的工程。
数据发送端标识信息是便于数据接收端确认数据发送端的身份,所以数据发送端标识信息可以由数据接收端生成,并发送至数据发送端,或者,由数据发送端生成,而后向数据接收端进行注册,注册通过后,在数据接收端,该数据发送端标识信息与该数据发送端绑定,用于确定数据发送端的身份。其中,数据发送端标识信息可以是标识ID、字符串或者其他相类似的数据,本方案对此不做特别限定。
在本实施例中,在数据发送端预设置有至少两条第一共享信息,第一共享信息可以是字符串、整型数值、浮点型数值或者其他类型的数据,任意两个第一共享信息可以是相同的,也可以是不相同的,在本实施例中,第一共享信息可以是数据发送端在数据接收端内注册标识ID时,由数据接收端分配给数据发送端的数据,或者,由数据发送端随机生成,而后向数据接收端进行进一步查重排查后,确认无重复的数据,也可以是数据接收端和数据发送端双方按照预定义的规则生成得到的一致的数据。
而在本步骤中,第一当前时间信息可以是代表当前时刻的时间信息,也可以是跟数据接收端提前协商的距当前时刻最近的某一整点的时间信息,比如,可以采用当前时刻的整点时间信息作为第一当前时间信息,还可以采用奇数整点或偶数整点的时间信息作为第一当前时间信息,还可以采用距当前时刻最近的、可以被某一预设置整数整除的整点的时间信息作为第一当前时间信息。
在本实施例中,通过将数据发送端标识信息、共享信息和当前时间信息进行加密操作,使得各项数据信息被加密算法加密,提高数据的安全性,比如,可以将数据发送端信息、当前时间信息和其中一个共享信息按预设加密算法加密,得到第一中间数据,再将第一中间数据与剩余的共享信息中的一个进行第二次加密,得到第二中间数据,并依次将各个共享信息均与在先得到的中间数据进行加密操作,使得最终得到的第一加密信息在不知道如何进行加密操作的情况下,完全无法复原为原始的发送端标识信息、共享信息和当前时间信息,当然,也可以直接将数据发送端标识信息、各个共享信息和当前时间信息直接进行合并加密,得到第一加密信息。其中,加密操作所采用的加密方法可以是MD5加密方法,MD5信息摘要算法(MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致。也可以采用相类似的SHA1,SHA256,SHA512等其他方式的加密算法进行加密,安全散列算法(Secure HashAlgorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。
具体的,比如,若存在两个第一共享信息,两个第一共享信息分别为字符串1和字符串2;将发送端标识信息、当前时间信息和字符串1进行MD5操作,得到第一中间数据,按预设规则获取第一中间数据中的部分信息,作为第一中间加密数据,将第一中间加密数据与字符串2进行MD5操作,得到第二中间数据,按预设规则获取第二中间数据中的部分信息,作为上述第一加密信息。
在本实施例中,可以采用多种加密方法混合的方式对数据发送端标识信息、预设置的至少两条第一共享信息和第一当前时间信息进行加密操作,使得形成新的变种加密算法,增加数据的安全性。
S120、将第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息。
在本实施例中,通过将第一加密信息进行拆分,得到至少两条子加密信息,比如,可以将第一加密信息按与设置的数值截取为两段子加密信息、三段子加密信息或者更多段的子加密信息,或者,按照预设间隔提取第一加密信息中的信息作为第一子加密信息,将第一加密信息中剩余的信息作为第二子加密信息,若需要划分为更多段的子加密信息,可以继续继续提取第一加密信息。
在本实施例中,可以按预设规则取出第一加密信息中的部分字符,得到第一字符信息,计算第一字符信息的字节数,将字节数与原有的第一共享信息的长度或新的第一共享信息的长度求余,得到取长数值,比如,将字节数与字符串1或字符串2的长度求余,或者将字节数与字符串3求余;基于该取长数值获取第一加密信息中的子加密信息,然后将第一加密信息中未被获取的部分字符作为另一子加密信息。
S130、针对至少一条第一共享信息,按第一预设规则从第一共享信息中提取子共享信息。
在本实施例中,按照预设规则从第一共享信息中提取子共享信息,比如,可以提取字符串1、字符串2或字符串3中的部分字符作为子共享信息,其中,可以是预先设定的字符串截取长度和截取区间作为预设规则,或者,还可以是字符截取数量和截取间隔作为预设规则,预设规则:指的是将数据接收方和数据发送方提前设置好的规则密钥生成规则,规则的方式可能会有多种,同时使用,共同作用后生成的目标信息。
具体的,参考上述实施例,可以按预设规则从字符串3中提取部分字符串作为子共享信息。
S140、将至少一条子加密信息、第二加密信息和各个子共享信息合并得到加密密钥。
在本实施例中,由于上述步骤的多种加密逻辑,而且可以随时对各个步骤的规则进行变换,通过上述步骤得到的各个信息进行合并得到加密密钥,最终得到的加密密钥相较于普通的固定密钥具有更强的保密性,基于该加密密钥使得***间的数据交互更加安全。
S150、通过加密密钥对认证编码信息和流式数据进行加密,得到加密数据。
S160、将数据发送端标识信息和加密数据发送至数据接收端。
在本实施例中,通过上述加密密钥对认证编码信息和流式数据进行加密,将数据接收端反馈的认证编码信息编入加密数据中,在数据接收端接收到加密数据解密后,可以通过解密得到的认证编码信息确认发送数据的数据发送端是否合法。
在本实施例中,由于本方案中是通过预先约定部分加密规则,通过将数据发送端标识信息发送到数据接收端,数据接收端可以根据数据发送端标识信息找到对应的约定的加密规则对加密数据进行相应的解密,使得每个数据接收端与不同的数据发送端可以约定不同的加密规则,避免规则互通导致的不安全因素,提高数据安全性。
如图2所示,步骤S120中将第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息,包括如下步骤:
S210、按第二预设规则从第一加密信息中提取至少一条第一字符信息,并计算每条第一字符信息的字节数。
在本实施例中,按第二预设规则从第一加密信息提取至少一条第一字符信息,比如,从第一字符到第四字符作为第一条第一字符信息,从第三字符到第七字符作为第二条第一字符信息,从第五字符到第十字符作为第三条第一字符信息,还可以采用按预设间隔提取预设个数的字符作为第一字符信息,本步骤中按预设规则提取第一字符信息后,分别计算每条第一字符信息的字节数,预设规则:指的是将数据接收方和数据发送方提前设置好的规则密钥生成规则,规则的方式可能会有多种,同时使用,共同作用后生成的目标信息。
S220、将每个字节数与预设数值分别按预设计算方式进行计算,得到取长数值。
在本实施例中,将每个字节数与预设数值分别计算得到取长数值,比如,可以将字节数与第一加密信息的长度求余,得到相应的取长数值,还可以将字节数与任一第一共享信息的长度求余,得到相应的取长数值,还可以采用其他的方式,本步骤对此不作特别限定。
S230、根据每个取长数值,分别从第一加密信息中提取第二字符信息;将第二字符信息和第一加密信息中未被提取的字符信息,均作为子加密信息。
在本实施例中,根据每个取长数值,从第一加密信息中分别得到相应的第二字符信息,比如,从第一加密信息中获取第一字符至第五字符、第二字符至第七字符、第四字符至第五字符组成的字符信息作为第二字符信息,将每个第二字符信息和第一加密信息中未被提取的字符信息作为子加密信息。
S240、基于所有子加密信息,计算得到所述第二加密信息。
在本实施例中,可以按照预设聚合运算方法将所有子加密信息进行聚合,得到第二加密信息,聚合运算方法可以是异或计算方法,也可以是同或计算方法,当然,也可以通过其他预设规则将各个子加密信息进行拆分组合得到第二加密信息,或者通过其他计算方式将子加密信息进行排列组合得到第二加密信息,本方案对此不作特别限定。
如图3所示,步骤S110中将数据发送端标识信息、预设置的至少两条第一共享信息和第一当前时间信息进行加密操作,得到第一加密信息,包括如下步骤:
S310、将数据发送端标识信息、任一第一共享信息和第一当前时间信息进行加密操作,得到第一子加密信息。
在本实施例中,在数据传输阶段,通过将数据发送端标识信息、任一第一共享信息和第一当前时间进行加密操作,得到第一子加密信息,比如,将数据发送端标识信息、第一共享信息和第一当前时间信息进行md5操作,或者其他加密方法进行加密操作。
在本实施例中,由于数据接收端需要以相同的方式对接收到的数据进行解密,所以,本步骤中的任一第一共享信息可以是与预先编号的第一共享信息中的1号第一共享信息进行加密操作,也可以与2号第一共享信息进行加密操作,只要数据接收端知晓数据发送端中进行加密操作的第一共享信息是哪一个即可,也可以按照预先设定的方式选取任一第一共享信息进行上述加密操作。
S320、将剩余第一共享信息合并组成第二共享信息集。
在本实施例中,将剩余未进行加密操作的第二共享信息合并组成第一共享信息集,比如,可以通过字典、数组、队列或数据库等形式按照预先编号,将第一共享信息进行存储,以提高后续处理效率。
S330、从第二共享信息集中顺序获取第一共享信息,并将第一共享信息与前一次得到的第一子加密信息中的待加密信息进行加密操作,得到当前次的第一子加密信息。
S340、再次执行S330,直至第二共享信息集中的第一共享信息均被获取,得到当前次的第一子加密信息作为第一加密信息。
在本实施例中,步骤S330和步骤S340实现了对于第二共享信息集中的第一共享信息循环与新生成的第一子加密信息中的待加密信息的加密操作,直至所有第一共享信息均与相应的第一子加密信息进行过加密操作后,得到第一加密信息。
在本实施例中,第一子加密信息中的待加密信息可以是第一子加密信息的部分信息,由于第一共享信息的数量是确定的,所以,可以在每次进行循环加密操作时,均预先设置采用相同或者不同的预设规则,提取第一子加密信息中的部分信息作为待加密信息,并与第一共享信息进行加密,比如,在第一次与第一共享信息进行加密操作时,可以选取第一子加密信息中的前十个字符作为待加密信息,将该待加密信息与第一共享信息进行加密操作后,得到全新的第一子加密信息,在第二次与第一共享信息进行加密操作时,可以选取第一子加密信息中的后十个字符作为待加密信息,将该待加密信息与第一共享信息进行加密操作后,得到新的第一子加密信息,并进行下一步操作,直至得到第一加密信息。
如图4所示,本发明实施例提供了一种流式数据加解密方法。参照图4,加解密方法包括如下步骤:
S410、将数据发送端标识信息、预设置的至少两条第二共享信息和第二当前时间信息进行加密操作,得到认证加密信息。
在本实施例中,本步骤中的数据发送端标识信息与上述实施例中的数据发送端标识信息相同,可参考上述实施例中数据发送端标识信息的表述,第二共享信息与第一共享信息相类似的公共数据,数据发送端和数据接收端均知晓该信息,第二当前时间信息可以是代表当前时刻的时间信息,也可以是跟数据接收端提前协商的距当前时刻最近的某一整点的时间信息,比如,可以采用当前时刻的整点时间信息作为第二当前时间信息,还可以采用奇数整点或偶数整点的时间信息作为第二当前时间信息,还可以采用距当前时刻最近的、可以被某一预设置整数整除的整点的时间信息作为第二当前时间信息,通过将当前时间信息设置的时间点进行一定的宽松化可以提高后续的验证和加解密过程的效率,但是效率的提高会相应的降低安全性,所以,在本步骤中,可以参考数据处理时间和数据传输时间,适当的对于时间点的选择方式进行设定,以保证安全性和处理效率。
S420、将认证加密信息和数据发送端标识信息发送到数据接收端。
在本实施例中,在发送数据之前先将认证加密信息和数据发送端标识信息发送至数据接收端,以完成对于数据发送端的验证,避免直接发送数据导致数据丢失或者数据被直接非法获取的情况,进一步提高数据安全性。
S430、当接收到数据接收端在认证通过后反馈的认证编码信息时,将数据发送端标识信息、预设置的至少两条第一共享信息和第一当前时间信息进行加密操作,得到第一加密信息。
有关步骤S430,详细可参见步骤S110中的描述,本实施例在此不再赘述。
S440、将第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息。
有关步骤S440,详细可参见步骤S120中的描述,本实施例在此不再赘述。
S450、针对至少一条第一共享信息,按第一预设规则从第一共享信息中提取子共享信息。
有关步骤S450,详细可参见步骤S130中的描述,本实施例在此不再赘述。
S460、将至少一条子加密信息、第二加密信息和各个子共享信息合并得到加密密钥。
有关步骤S460,详细可参见步骤S140中的描述,本实施例在此不再赘述。
S470、通过加密密钥对认证编码信息和流式数据进行加密,得到加密数据。
有关步骤S470,详细可参见步骤S150中的描述,本实施例在此不再赘述。
S480、将数据发送端标识信息和加密数据发送至数据接收端。
有关步骤S480,详细可参见步骤S160中的描述,本实施例在此不再赘述。
如图5所示,步骤S410中将数据发送端标识信息、预设置的至少两条第二共享信息和第二当前时间信息进行加密操作,得到认证加密信息,包括如下步骤:
S510、将数据发送端标识信息、任一第二共享信息和第二当前时间信息进行加密操作,得到认证子加密信息。
在本实施例中,在数据传输阶段之前,进行认证阶段,通过将数据发送端标识信息、任一第二共享信息和第二当前时间进行加密操作,得到认证子加密信息,其中,加密操作与上述实施例中的加密操作可以是以相同的数据加密方式进行处理,比如,上述实施例中将数据发送端标识信息、第一共享信息和第一当前时间信息进行md5操作,本实施例中,也可以将数据发送端标识信息、任一第二共享信息和第二当前时间信息进行md5操作,以得到本步骤中的认证子加密信息。
在本实施例中,由于数据接收端需要以相同的方式对接收到的数据进行解密,所以,本步骤中的任一第二共享信息可以是与预先编号的第二共享信息中的1号第二共享信息进行加密操作,也可以与2号第二共享信息进行加密操作,只要数据接收端知晓数据发送端中进行加密操作的第二共享信息是哪一个即可,可以按照预先设定的方式选取任一第二共享信息进行上述加密操作。
S520、将剩余第二共享信息合并组成第一共享信息集。
在本实施例中,将剩余未进行加密操作的第二共享信息合并组成第一共享信息集,比如,可以通过字典、数组、队列或数据库等形式,按照预先编号,将第二共享信息进行存储,以提高后续处理效率。
S530、从第一共享信息集中顺序获取第二共享信息,并将第二共享信息与前一次得到的认证子加密信息中的待加密信息进行加密操作,得到当前次的认证子加密信息。
S540、再次执行S530,直至第一共享信息集中的第二共享信息均被获取,得到当前次的认证子加密信息作为认证加密信息。
在本实施例中,步骤S530和步骤S540实现了对于第一共享信息集中的第二共享信息循环与新生成的认证子加密信息中的待加密信息的加密操作,直至所有第二共享信息均与相应的认证子加密信息进行过加密操作后,得到认证加密信息。
在本实施例中,认证子加密信息中的待加密信息可以是认证子加密信息的部分信息,由于第二共享信息的数量是确定的,所以,可以在每次进行循环加密操作时,均预先设置采用相同或者不同的预设规则,提取认证子加密信息中的部分信息作为待加密信息,并与第二共享信息进行加密,比如,在第一次与第二共享信息进行加密操作时,可以选取认证子加密信息中的前十个字符作为待加密信息,将该待加密信息与第二共享信息进行加密操作后,得到全新的认证子加密信息,在第二次与第二共享信息进行加密操作时,可以选取认证子加密信息中的后十个字符作为待加密信息,将该待加密信息与第二共享信息进行加密操作后,得到新的认证子加密信息,并进行下一步操作,直至得到认证加密信息。
如图6所示,本发明实施例提供了一种流式数据加解密方法,应用于数据接收端,加解密方法包括如下步骤:
S610、当接收到数据发送端标识信息和加密数据时,将数据发送端标识信息、预设置的至少两条第一共享信息和第一调整时间信息进行加密操作,得到第一加密信息;其中,第一调整时间信息是按预设时间容差对第三当前时间信息调整得到。
在本实施例中,数据接收端在接收到数据发送端标识信息和相应的加密数据时,根据数据发送端标识信息、预设置的至少两条第一共享信息和第一调整时间信息进行加密操作,其中,本实施例中的第一共享信息与上述实施例中数据发送端中的第一共享信息相同,可以是数据发送端和数据接收端预先约定共享的数据,或者,是由数据接收端单独为数据发送端配置的数据。
在本实施例找那个,预设时间容差可以是根据当前数据传输耗时、数据处理耗时等较容易获取到的耗时累加得到,也可以由用户预先设定,降低对于时间的精度要求,比如,接收到数据的时间为12点30分或者12点35分,第一调整时间信息都可以是取整的12点整,或者,给与更大的时间容差,取11点整作为第一调整时间信息,但是所容忍的时间范围越大,越容易出现不安全的情况,所以,可以根据实际需求设定合理的时间容差获取方式或设定预设时间容差。
加密操作所采用的加密方法可以是MD5加密方法,MD5信息摘要算法(MD5Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致。也可以采用相类似的SHA1,SHA256,SHA512等其他方式的加密算法进行加密,安全散列算法(Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。
S620、将第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息。
在本实施例中,通过将第一加密信息进行拆分,得到至少两条子加密信息,比如,可以将第一加密信息按与设置的数值截取为两段子加密信息、三段子加密信息或者更多段的子加密信息,或者,按照预设间隔提取第一加密信息中的信息作为第一子加密信息,将第一加密信息中剩余的信息作为第二子加密信息,若需要划分为更多段的子加密信息,可以继续继续提取第一加密信息。
在本实施例中,可以按预设规则取出第一加密信息中的部分字符,得到第一字符信息,计算第一字符信息的字节数,将字节数与原有的第一共享信息的长度或新的第一共享信息的长度求余,得到取长数值,比如,将字节数与字符串1或字符串2的长度求余,或者将字节数与字符串3求余;基于该取长数值获取第一加密信息中的子加密信息,然后将第一加密信息中未被获取的部分字符作为另一子加密信息。
S630、针对至少一条第一共享信息,按第一预设规则从第一共享信息中提取子共享信息。
在本实施例中,按照预设规则从第一共享信息中提取子共享信息,比如,可以提取字符串1、字符串2或字符串3中的部分字符作为子共享信息,其中,可以是预先设定的字符串截取长度和截取区间作为预设规则,或者,还可以是字符截取数量和截取间隔作为预设规则,预设规则:指的是将数据接收方和数据发送方提前设置好的规则密钥生成规则,规则的方式可能会有多种,同时使用,共同作用后生成的目标信息。
S640、将至少一条子加密信息、第二加密信息和各个子共享信息合并得到解密密钥。
在本实施例中,由于上述步骤的多种解密逻辑,而且可以随时对各个步骤的规则进行变换,通过上述步骤得到的各个信息进行合并得到解密密钥,最终得到的解密密钥相较于普通的固定密钥具有更强的保密性,基于该解密密钥使得***间的数据交互更加安全。
S650、通过解密密钥对加密数据进行解密。
在本实施例中,按上述步骤得到的解密密钥对接收到的加密数据进行解密,得到数据发送端所发送的数据,数据接收端与数据发送端以相同的规则和步骤生成加密密钥和解密密钥,由于加密密钥和解密密钥是基于变量数据和预先共享的数据变换得到,所以,本方案中的数据交互过程相较于现有技术中的固定密钥更加安全。
在本实施例中,步骤S620中将第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息的步骤与上述实施例中的步骤S120的实质相同,本方案对此不再赘述。
如图7所示,步骤S610中将数据发送端标识信息、预设置的至少两条第一共享信息和第一调整时间信息进行加密操作,得到第一加密信息,包括如下步骤:
S710、将数据发送端标识信息、任一第一共享信息和第一调整时间信息进行加密操作,得到第一子加密信息。
在本实施例中,在数据传输阶段,通过将数据发送端标识信息、任一第一共享信息和第一调整时间进行加密操作,得到第一子加密信息,比如,将数据发送端标识信息、第一共享信息和第一调整时间信息进行md5操作,或者其他加密方法进行加密操作。
在本实施例中,由于数据接收端需要按数据发送端中的加密方式得到加密密钥,所以,本步骤中的任一第一共享信息可以是与预先编号的第一共享信息中的1号第一共享信息进行加密操作,也可以与2号第一共享信息进行加密操作,也可以按照预先设定的方式选取任一第一共享信息进行上述加密操作。
S720、将剩余第一共享信息合并组成第二共享信息集。
在本实施例中,将剩余未进行加密操作的第二共享信息合并组成第一共享信息集,比如,可以通过字典、数组、队列或数据库等形式按照预先编号,将第一共享信息进行存储,以提高后续处理效率。
S730、从第二共享信息集中顺序获取第一共享信息,并将第一共享信息与前一次得到的第一子加密信息中的待加密信息进行加密操作,得到当前次的第一子加密信息。
S740、再次执行S730,直至第二共享信息集中的第一共享信息均被获取,得到当前次的第一子加密信息作为第一加密信息。
在本实施例中,步骤S730和步骤S740实现了对于第二共享信息集中的第一共享信息循环与新生成的第一子加密信息中的待加密信息的加密操作,直至所有第一共享信息均与相应的第一子加密信息进行过加密操作后,得到第一加密信息。
在本实施例中,第一子加密信息中的待加密信息可以是第一子加密信息的部分信息,由于第一共享信息的数量是确定的,所以,可以在每次进行循环加密操作时,均预先设置采用相同或者不同的预设规则,提取第一子加密信息中的部分信息作为待加密信息,并与第一共享信息进行加密,比如,在第一次与第一共享信息进行加密操作时,可以选取第一子加密信息中的前十个字符作为待加密信息,将该待加密信息与第一共享信息进行加密操作后,得到全新的第一子加密信息,在第二次与第一共享信息进行加密操作时,可以选取第一子加密信息中的后十个字符作为待加密信息,将该待加密信息与第一共享信息进行加密操作后,得到新的第一子加密信息,并进行下一步操作,直至得到第一加密信息。
如图8所示,本发明实施例提供了一种流式数据加解密方法。参照图8,与图6所示流式数据加解密方法相比,加解密方法还包括如下步骤:
S810、当接收到数据发送端标识信息和认证加密信息时,将数据发送端标识信息、预设置的至少两条第二共享信息和第二调整时间信息进行加密操作,得到验证加密信息;其中,第二调整时间信息是按预设时间容差对第四当前时间信息调整得到。
在本实施例中,在进行数据传输阶段之前,本方案还会在接收到数据发送端标识信息和认证加密信息时,根据数据发送端标识信息、预设值的第二共享信息和第二调整时间信息进行加密操作,第二共享信息与第一共享信息相类似的公共数据,数据发送端和数据接收端均知晓该信息,第四当前时间信息可以是代表当前时刻的时间信息,,也可以是跟数据接收端提前协商的距当前时刻最近的某一整点的时间信息,比如,可以采用当前时刻的整点时间信息作为第二当前时间信息,还可以采用奇数整点或偶数整点的时间信息作为第二当前时间信息,还可以采用距当前时刻最近的、可以被某一预设置整数整除的整点的时间信息作为第二当前时间信息,通过将当前时间信息设置的时间点进行一定的宽松化可以提高后续的验证和加解密过程的效率,但是效率的提高会相应的降低安全性,所以,在本步骤中,可以参考数据处理时间和数据传输时间,适当的对于时间点的选择方式进行设定,以保证安全性和处理效率。
在本实施例中,由于数据传输过程的环境是相类似的,本步骤中的预设时间容差与上述实施例中的预设时间容差可以相同。
S820、判断验证加密信息和认证加密信息是否一致。
在本实施例中,由于本方案中在进行加密操作时的时间不可能与数据发送端进行加密操作时的时间一致,所以,在上述步骤中通过时间容差的方式来让第二调整时间信息与数据发送端的第二当前时间信息一致,在本方案中,为保证合法用户的验证加密信息和认证加密信息是一致的,可以多进行步骤S810几次,并采用不同的时间容差,分别得到验证加密信息,只要任一验证加密信息与认证加信息一致,则可以判定认证成功,当然,为了保证安全性,可以通过反馈失败信息给数据发送端,让数据发送端再次进行认证,虽然可能会导致认证次数增加,但是安全性也更高。
S831、当验证加密信息和认证加密信息一致时,生成认证编码信息加密反馈至数据发送端。
S832、当验证加密信息和认证加密信息不一致时,生成认证失败信息反馈至数据发送端。
在本实施例中,在本实施例中,在验证加密信息和认证加密信息一致时,说明发送相关信息的数据发送端是已注册或者合法的客户端,且可以与数据接收端进行数据交互,此时,向数据发送端反馈认证编码信息作为后续数据传输的凭证,完成双方的认证过程。
在本实施例中,由于认证编码信息时认证通过后才会反馈的数据,所以认证编码信息需要加密反馈,而认证失败反馈的失败反馈信息,可以在失败反馈信息不是非重要的信息时,选择不加密的方式进行反馈,若失败反馈信息中包含较为重要的信息时,也可以选择加密的凡是进行反馈。
如图9所示,在本实施例中,步骤S810中将数据发送端标识信息、预设置的至少两条第二共享信息和第二当前时间信息进行加密操作,得到验证加密信息,包括如下步骤:
S910、将数据发送端标识信息、任一第二共享信息和第二调整时间信息进行加密操作,得到验证子加密信息。
在本实施例中,在数据传输阶段之前,进行认证阶段,在接收到数据发送端发送的认证子加密信息后,通过将数据发送端标识信息、任一第二共享信息和第二调整时间进行加密操作,得到验证子加密信息,其中,加密操作与上述实施例中的加密操作可以是以相同的数据加密方式进行处理,比如,上述实施例中将数据发送端标识信息、第一共享信息和第一当前时间信息进行md5操作,本实施例中,也可以将数据发送端标识信息、任一第二共享信息和第二调整时间信息进行md5操作,以得到本步骤中的验证子加密信息。
S920、将剩余第二共享信息合并组成第一共享信息集。
在本实施例中,将剩余未进行加密操作的第二共享信息合并组成第一共享信息集,比如,可以通过字典、数组、队列或数据库等形式,按照预先编号,将第二共享信息进行存储,以提高后续处理效率。
S930、从第一共享信息集中顺序获取第二共享信息,并将第二共享信息与前一次得到的验证子加密信息中的待加密信息进行加密操作,得到当前次的验证子加密信息。
S940、再次执行S930,直至第一共享信息集中的第二共享信息均被获取,得到当前次的验证子加密信息作为验证加密信息。
在本实施例中,步骤S930和步骤S940实现了对于第一共享信息集中的第二共享信息循环与新生成的验证子加密信息中的待加密信息的加密操作,直至所有第二共享信息均与相应的验证子加密信息进行过加密操作后,得到验证加密信息。
在本实施例中,验证子加密信息中的待加密信息可以是验证子加密信息的部分信息,由于第二共享信息的数量是确定的,所以,可以在每次进行循环加密操作时,均预先设置采用相同或者不同的预设规则,提取验证子加密信息中的部分信息作为待加密信息,并与第二共享信息进行加密,比如,在第一次与第二共享信息进行加密操作时,可以选取验证子加密信息中的前十个字符作为待加密信息,将该待加密信息与第二共享信息进行加密操作后,得到全新的验证子加密信息,在第二次与第二共享信息进行加密操作时,可以选取验证子加密信息中的后十个字符作为待加密信息,将该待加密信息与第二共享信息进行加密操作后,得到新的验证子加密信息,并进行下一步操作,直至得到验证加密信息。
如图10所示,本发明实施例提供了一种流式数据加解密方法。参照图10,与如6所示加解密方法相比,区别在于,加解密方法还包括如下步骤:
S1011、判断解密密钥对加密数据解密是否失败。
S1021、若解密密钥对加密数据解密失败,则加密数据为非法数据;
S1022、若解密密钥对数加密数据解密成功,则判断加密数据解密得到的解密数据中是否包含认证编码信息且认证编码信息是否有效,若包含认证编码信息且认证编码信息有效,则将解密数据中除认证编码信息外的数据作为有效数据;若不包含认证编码信息或认证编码信息无效,则将解密数据作为无效数据。
在本实施例中,在对加密数据进行解密后,若解密成功,则判断解密得到的数据中是否包含认证编码信息,不仅如此,还需判断认证编码信息是否有效,在解密数据中包含认证编码信息说明该数据发送端在先进行过认证,但是,可能存在认证已经过去了很长的时间,所以在本方案中,可以针对认证编码信息设定有效时长,当解密得到认证编码信息的时间已超过有效时长,则可以认为该认证编码信息无效。
如图11所示,本发明实施例提供了一种流式数据加解密装置,设置在数据发送端,加解密装置包括:第一处理单元、第二处理单元、第三处理单元、第四处理单元、加密单元和发送单元。
在本实施例中,第一处理单元,用于当接收到数据接收端在认证通过后反馈的认证编码信息时,将数据发送端标识信息、预设置的至少两条第一共享信息和第一当前时间信息进行加密操作,得到第一加密信息。
在本实施例中,第二处理单元,用于将第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息。
在本实施例中,第三处理单元,用于针对至少一条第一共享信息,按第一预设规则从第一共享信息中提取子共享信息。
在本实施例中,第四处理单元,用于将至少一条子加密信息、第二加密信息和各个子共享信息合并得到加密密钥。
在本实施例中,加密单元,用于通过加密密钥对认证编码信息和流式数据进行加密,得到加密数据。
在本实施例中,发送单元,用于将数据发送端标识信息和加密数据发送至数据接收端。
在本实施例中,加解密装置还包括:认证单元,用于将数据发送端标识信息、预设置的至少两条第二共享信息和第二当前时间信息进行加密操作,得到认证加密信息;将认证加密信息和数据发送端标识信息发送到数据接收端。
在本实施例中,认证单元,还用于执行如下步骤:S11、将数据发送端标识信息、任一第二共享信息和第二当前时间信息进行加密操作,得到认证子加密信息;S12、将剩余第二共享信息合并组成第一共享信息集;S13、从第一共享信息集中顺序获取第二共享信息,并将第二共享信息与前一次得到的认证子加密信息中的待加密信息进行加密操作,得到当前次的认证子加密信息;S14、再次执行S13,直至第一共享信息集中的第二共享信息均被获取,得到当前次的认证子加密信息作为认证加密信息。
在本实施例中,第二处理单元,具体用于按第二预设规则从第一加密信息中提取至少一条第一字符信息,并计算每条第一字符信息的字节数;将每个字节数与预设数值分别按预设计算方式进行计算,得到取长数值;根据每个取长数值,分别从第一加密信息中提取第二字符信息;将第二字符信息和第一加密信息中未被提取的字符信息,均作为子加密信息;基于所有子加密信息,计算得到所述第二加密信息。
在本实施例中,第一处理单元,具体用于执行如下步骤:S21、将数据发送端标识信息、任一第一共享信息和第一当前时间信息进行加密操作,得到第一子加密信息;S22、将剩余第一共享信息合并组成第二共享信息集;S23、从第二共享信息集中顺序获取第一共享信息,并将第一共享信息与前一次得到的第一子加密信息中的待加密信息进行加密操作,得到当前次的第一子加密信息;S24、再次执行S23,直至第二共享信息集中的第一共享信息均被获取,得到当前次的第一子加密信息作为第一加密信息。
如图12所示,本发明实施例提供了一种流式数据加解密装置,设置在数据接收端,加解密装置包括:第五处理单元17、第六处理单元18、第七处理单元19、第八处理单元20和解密单元21。
在本实施例中,第五处理单元17,用于当接收到数据发送端标识信息和加密数据时,将数据发送端标识信息、预设置的至少两条第一共享信息和第一调整时间信息进行加密操作,得到第一加密信息;其中,第一调整时间信息是按预设时间容差对第三当前时间信息调整得到。
在本实施例中,第六处理单元18,用于将第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息。
在本实施例中,第七处理单元19,用于针对至少一条第一共享信息,按第一预设规则从第一共享信息中提取子共享信息。
在本实施例中,第八处理单元20,用于将至少一条子加密信息、第二加密信息和各个子共享信息合并得到解密密钥。
在本实施例中,解密密单元,用于通过解密密钥对加密数据进行解密。
在本实施例中,加解密装置还包括:验证单元,用于当接收到数据发送端标识信息和认证加密信息时,将数据发送端标识信息、预设置的至少两条第二共享信息和第二调整时间信息进行加密操作,得到验证加密信息;其中,第二调整时间信息是按预设时间容差对第四当前时间信息调整得到;判断验证加密信息和认证加密信息是否一致;当验证加密信息和认证加密信息一致时,生成认证编码信息加密反馈至数据发送端;当验证加密信息和认证加密信息不一致时,生成认证失败信息反馈至数据发送端。
在本实施例中,验证单元,具体用于执行如下步骤:S31、将数据发送端标识信息、任一第二共享信息和第二调整时间信息进行加密操作,得到验证子加密信息;S32、将剩余第二共享信息合并组成第一共享信息集;S33、从第一共享信息集中顺序获取第二共享信息,并将第二共享信息与前一次得到的验证子加密信息中的待加密信息进行加密操作,得到当前次的验证子加密信息;S34、再次执行S33,直至第一共享信息集中的第二共享信息均被获取,得到当前次的验证子加密信息作为验证加密信息。
在本实施例中,第六处理单元18,用于按第二预设规则从第一加密信息中提取至少一条第一字符信息,并计算每条第一字符信息的字节数;将每个字节数与预设数值分别按预设计算方式进行计算,得到取长数值;根据每个取长数值,分别从第一加密信息中提取第二字符信息;将第二字符信息和第一加密信息中未被提取的字符信息,均作为子加密信息;基于所有子加密信息,计算得到所述第二加密信息。
在本实施例中,解密单元21,还用于若解密密钥对加密数据解密失败,则加密数据为非法数据;若解密密钥对数加密数据解密成功,则判断加密数据解密得到的解密数据中是否包含认证编码信息且认证编码信息是否有效,若包含认证编码信息且认证编码信息有效,则将解密数据中除认证编码信息外的数据作为有效数据;若不包含认证编码信息或认证编码信息无效,则将解密数据作为无效数据。
在本实施例中,第五处理单元17,具体用于执行如下步骤:S41、将数据发送端标识信息、任一第一共享信息和第一调整时间信息进行加密操作,得到第一子加密信息;S42、将剩余第一共享信息合并组成第二共享信息集;S43、从第二共享信息集中顺序获取第一共享信息,并将第一共享信息与前一次得到的第一子加密信息中的待加密信息进行加密操作,得到当前次的第一子加密信息;S44、再次执行S43,直至第二共享信息集中的第一共享信息均被获取,得到当前次的第一子加密信息作为第一加密信息。
如图13所示,本发明实施例提供了一种流式数据加解密***,包括处理器1110、通信接口1120、存储器1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信;
存储器1130,用于存放计算机程序;
处理器1110,用于执行存储器1130上所存放的程序时,实现如下所示流式数据加解密方法:
当接收到数据接收端在认证通过后反馈的认证编码信息时,将数据发送端标识信息、预设置的至少两条第一共享信息和第一当前时间信息进行加密操作,得到第一加密信息;
将第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息;
针对至少一条第一共享信息,按第一预设规则从第一共享信息中提取子共享信息;
将至少一条子加密信息、第二加密信息和各个子共享信息合并得到加密密钥;
通过加密密钥对认证编码信息和流式数据进行加密,得到加密数据;
将数据发送端标识信息和加密数据发送至数据接收端。
或者,处理器1110,用于执行存储器1130上所存放的程序时,实现如下所示流式数据加解密方法:
当接收到数据发送端标识信息和加密数据时,将数据发送端标识信息、预设置的至少两条第一共享信息和第一调整时间信息进行加密操作,得到第一加密信息;其中,第一调整时间信息是按预设时间容差对第三当前时间信息调整得到;
将第一加密信息拆分为至少两条子加密信息,按预设计算方式得到第二加密信息;
针对至少一条第一共享信息,按第一预设规则从第一共享信息中提取子共享信息;
将至少一条子加密信息、第二加密信息和各个子共享信息合并得到解密密钥;
通过解密密钥对加密数据进行解密。
本发明实施例提供的电子设备,处理器1110通过执行存储器1130上所存放的程序通过在数据发送端和数据接收端共享部分初始数据,数据发送端和数据接收端按预定义的方式进行变换和处理,使得非法用户无法知晓和获取数据发送端和数据接收端之间交互的数据,同时,避免固定式密钥被非法用户获取后,非法用户截取数据发端发送的数据或者根据密钥向数据接收端发送非法数据的情况,提高数据交互的安全性。
上述电子设备提到的通信总线1140可以是外设部件互连标准(PeripheralComponentInterconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等。该通信总线1140可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1120用于上述电子设备与其他设备之间的通信。
存储器1130可以包括随机存取存储器(RandomAccessMemory,简称RAM),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器1130还可以是至少一个位于远离前述处理器1110的存储装置。
上述的处理器1110可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述任一实施例的流式数据加解密方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidStateDisk(SSD))等。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidStateDisk(SSD))等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。