发明内容
本申请实施例的目的在于提供一种数据安全导出方法、装置及存储介质,用以解决现有技术中的对称式密钥进行数据加密存在数据安全隐患的问题。
为实现上述目的,本申请实施例提供一种数据安全导出方法,包括步骤:生成密钥对,所述密钥对包括公钥和对应的私钥,将所述公钥发送给参与方,以使所述参与方根据所述公钥的公钥位长度生成动态长度,并基于所述动态长度对待加密的源文件进行切片得到若干第一切片数据,以及分别对所述第一切片数据进行加密后将得到的若干密文重新组合拼接,形成加密文件;
获取所述参与方发送的所述加密文件和所述动态长度,根据所述私钥的私钥位长度,对所述加密文件进行切片得到若干第二切片数据,分别对所述第二切片数据进行解密得到若干解密内容,将所述解密内容与所述动态长度进行长度对比,判断所述加密文件是否被篡改过,当所述加密文件未被篡改时,则拼接所有的所述解密内容,得到所述源文件的内容。
可选地,对所述第一切片数据进行加密和对所述第二切片数据进行解密的方法为RSA算法。
可选地,所述参与方根据所述公钥的所述公钥位长度生成所述动态长度的方法包括:
所述参与方根据所述公钥位长度生成一个切片长度可选范围,所述参与方从所述切片长度可选范围中进行随机选取,从而确定所述动态长度。
可选地,所述切片长度可选范围为:[1,所述公钥位长度/8-11]。
可选地,对所述第一切片数据进行多线程加密,以及对所述第二切片数据进行多线程解密,从而提高整体加解密速度。
为实现上述目的,本申请实施例还提供另一种数据安全导出方法,包括步骤:获取发起方发送的公钥,根据所述公钥的公钥位长度生成动态长度,基于所述动态长度对待加密的源文件进行切片得到若干第一切片数据,分别对所述第一切片数据进行加密后将得到的若干密文重新组合拼接,形成加密文件;
将所述加密文件和所述动态长度发送给所述发起方,以使所述发起方根据所述公钥对应的私钥的私钥位长度,对所述加密文件进行切片得到若干第二切片数据,并分别对所述第二切片数据进行解密得到若干解密内容,以及将所述解密内容与所述动态长度进行长度对比,判断所述加密文件是否被篡改过,当所述加密文件未被篡改时,则拼接所有的所述解密内容,得到所述源文件的内容。
可选地,根据所述公钥的所述公钥位长度生成所述动态长度的方法包括:
根据所述公钥位长度生成一个切片长度可选范围,从所述切片长度可选范围中进行随机选取,从而确定所述动态长度。
为实现上述目的,本申请还提供一种数据安全导出装置,包括:存储器;以及
与所述存储器连接的处理器,所述处理器被配置成:
生成密钥对,所述密钥对包括公钥和对应的私钥,将所述公钥发送给参与方,以使所述参与方根据所述公钥的公钥位长度生成动态长度,并基于所述动态长度对待加密的源文件进行切片得到若干第一切片数据,以及分别对所述第一切片数据进行加密后将得到的若干密文重新组合拼接,形成加密文件;
获取所述参与方发送的所述加密文件和所述动态长度,根据所述私钥的私钥位长度,对所述加密文件进行切片得到若干第二切片数据,分别对所述第二切片数据进行解密得到若干解密内容,将所述解密内容与所述动态长度进行长度对比,判断所述加密文件是否被篡改过,当所述加密文件未被篡改时,则拼接所有的所述解密内容,得到所述源文件的内容。
为实现上述目的,本申请还提供另一种数据安全导出装置,包括:存储器;以及
与所述存储器连接的处理器,所述处理器被配置成:
获取发起方发送的公钥,根据所述公钥的公钥位长度生成动态长度,基于所述动态长度对待加密的源文件进行切片得到若干第一切片数据,分别对所述第一切片数据进行加密后将得到的若干密文重新组合拼接,形成加密文件;
将所述加密文件和所述动态长度发送给所述发起方,以使所述发起方根据所述公钥对应的私钥的私钥位长度,对所述加密文件进行切片得到若干第二切片数据,并分别对所述第二切片数据进行解密得到若干解密内容,以及将所述解密内容与所述动态长度进行长度对比,判断所述加密文件是否被篡改过,当所述加密文件未被篡改时,则拼接所有的所述解密内容,得到所述源文件的内容。
为实现上述目的,本申请还提供一种计算机存储介质,其上存储有计算机程序,其中所述计算机程序被机器执行时实现如上所述的方法的步骤。
本申请实施例具有如下优点:
本申请实施例提供一种数据安全导出方法,包括步骤:生成密钥对,所述密钥对包括公钥和对应的私钥,将所述公钥发送给参与方,以使所述参与方根据所述公钥的公钥位长度生成动态长度,并基于所述动态长度对待加密的源文件进行切片得到若干第一切片数据,以及分别对所述第一切片数据进行加密后将得到的若干密文重新组合拼接,形成加密文件;获取所述参与方发送的所述加密文件和所述动态长度,根据所述私钥的私钥位长度,对所述加密文件进行切片得到若干第二切片数据,分别对所述第二切片数据进行解密得到若干解密内容,将所述解密内容与所述动态长度进行长度对比,判断所述加密文件是否被篡改过,当所述加密文件未被篡改时,则拼接所有的所述解密内容,得到所述源文件的内容。本申请实施例还提供另一种数据安全导出方法,包括步骤:获取发起方发送的公钥,根据所述公钥的公钥位长度生成动态长度,基于所述动态长度对待加密的源文件进行切片得到若干第一切片数据,分别对所述第一切片数据进行加密后将得到的若干密文重新组合拼接,形成加密文件;将所述加密文件和所述动态长度发送给所述发起方,以使所述发起方根据所述公钥对应的私钥的私钥位长度,对所述加密文件进行切片得到若干第二切片数据,并分别对所述第二切片数据进行解密得到若干解密内容,以及将所述解密内容与所述动态长度进行长度对比,判断所述加密文件是否被篡改过,当所述加密文件未被篡改时,则拼接所有的所述解密内容,得到所述源文件的内容。
通过上述方法,解决了使用对称式密钥进行数据加密存在相关数据安全隐患的问题,在满足数据安全的同时,又能提高数据加密效率,节约了相关成本。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,下面所描述的本申请不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本申请一实施例提供一种数据安全导出方法,参考图1,图1为本申请的一实施方式中提供的一种数据安全导出方法的流程图,应当理解的是,该方法还可以包括未示出的附加框和/或可以省略所示出的框,本申请的范围在此方面不受限制。
在步骤101处,生成密钥对,所述密钥对包括公钥和对应的私钥,将所述公钥发送给参与方,以使所述参与方根据所述公钥的公钥位长度生成动态长度,并基于所述动态长度对待加密的源文件进行切片得到若干第一切片数据,以及分别对所述第一切片数据进行加密后将得到的若干密文重新组合拼接,形成加密文件。
在一些实施例中,所述参与方根据所述公钥的所述公钥位长度生成所述动态长度的方法包括:
所述参与方根据所述公钥位长度生成一个切片长度可选范围,所述参与方从所述切片长度可选范围中进行随机选取,从而确定所述动态长度。
在一些实施例中,所述切片长度可选范围为:[1,所述公钥位长度/8-11]。
在一些实施例中,对所述第一切片数据进行多线程加密,以及对所述第二切片数据进行多线程解密,从而提高整体加解密速度。
具体地,在本申请的实施例中,参与方的用户为用户A,发起放的用户为用户B。用户B提供给用户A由发起方生成的个人公钥,以使所述用户A的参与方根据所述公钥的公钥位长度生成动态长度。在一些实施例中,在用户A的参与方,参与方的加密程序根据发起方的公钥的位长度生成一个切片长度可选范围,在一些实施例中,即[1,公钥位长度/8-11]。用户A从中选取动态长度,在一些实施例中,由参与方从切片长度可选范围中进行随机选取动态长度。基于这个动态长度,本申请的方法程序对源文件进行切片得到若干第一切片数据,然后加密后得到对应数量的密文。在一些实施例中,采用多线程加密对第一切片数据进行加密,提高整体加密速度。基于序号,将得到的密文重新组合拼接,形成加密文件。并将该动态长度通知用户B。
在步骤102处,获取所述参与方发送的所述加密文件和所述动态长度,根据所述私钥的私钥位长度,对所述加密文件进行切片得到若干第二切片数据,分别对所述第二切片数据进行解密得到若干解密内容,将所述解密内容与所述动态长度进行长度对比,判断所述加密文件是否被篡改过,当所述加密文件未被篡改时,则拼接所有的所述解密内容,得到所述源文件的内容。
具体地,本申请方法中发起方的解密程序会根据用户B的私钥、加密文件、动态长度(加密时采用的切片长度)进行解密。根据私钥的位长度,对加密文件进行切片得到若干第二切片数据,然后进行解密得到对应数量的若干解密内容,在一些实施例中,进行多线程解密。将获得解密内容与动态长度进行长度比对,确保数据未被篡改过。在所有第二切片数据都被确认解密完成后,拼接解密内容,形成解密文件,即获得与源文件相同内容的文件。
在一些实施例中,对所述第一切片数据进行加密和对所述第二切片数据进行解密的方法为RSA算法。
本申请一实施例还提供另一种数据安全导出方法,参考图2,图2为本申请的一实施方式中提供的另一种数据安全导出方法的流程图,应当理解的是,该方法还可以包括未示出的附加框和/或可以省略所示出的框,本申请的范围在此方面不受限制。
在步骤201处,获取发起方发送的公钥,根据所述公钥的公钥位长度生成动态长度,基于所述动态长度对待加密的源文件进行切片得到若干第一切片数据,分别对所述第一切片数据进行加密后将得到的若干密文重新组合拼接,形成加密文件。
在步骤202处,将所述加密文件和所述动态长度发送给所述发起方,以使所述发起方根据所述公钥对应的私钥的私钥位长度,对所述加密文件进行切片得到若干第二切片数据,并分别对所述第二切片数据进行解密得到若干解密内容,以及将所述解密内容与所述动态长度进行长度对比,判断所述加密文件是否被篡改过,当所述加密文件未被篡改时,则拼接所有的所述解密内容,得到所述源文件的内容。
具体实施方式参考前述实施例,此处不再赘述。
通过上述方法,本申请基于随机分割,非对称式加密等技术,并针对非对称式加密不利于大型文件加密的缺陷,提出了根据动态长度(进一步可以是随机动态长度)进行分割数据的方法,可以很好地保留了整个加密过程后数据导出、数据传输的安全性,同时又提升了数据加密的性能,最大程度地降低了数据加密的时长,节约了相关成本,提升了用户体验感。
图3为本申请实施例提供的一种数据安全导出装置的模块框图。该装置包括:
存储器301;以及与所述存储器301连接的处理器302,所述处理器302被配置成:生成密钥对,所述密钥对包括公钥和对应的私钥,将所述公钥发送给参与方,以使所述参与方根据所述公钥的公钥位长度生成动态长度,并基于所述动态长度对待加密的源文件进行切片得到若干第一切片数据,以及分别对所述第一切片数据进行加密后将得到的若干密文重新组合拼接,形成加密文件;
获取所述参与方发送的所述加密文件和所述动态长度,根据所述私钥的私钥位长度,对所述加密文件进行切片得到若干第二切片数据,分别对所述第二切片数据进行解密得到若干解密内容,将所述解密内容与所述动态长度进行长度对比,判断所述加密文件是否被篡改过,当所述加密文件未被篡改时,则拼接所有的所述解密内容,得到所述源文件的内容。
在一些实施例中,所述处理器302还被配置成:对所述第一切片数据进行加密和对所述第二切片数据进行解密的方法为RSA算法。
在一些实施例中,所述处理器302还被配置成:所述参与方根据所述公钥的所述公钥位长度生成所述动态长度的方法包括:
所述参与方根据所述公钥位长度生成一个切片长度可选范围,所述参与方从所述切片长度可选范围中进行随机选取,从而确定所述动态长度。
在一些实施例中,所述处理器302还被配置成:所述切片长度可选范围为:[1,所述公钥位长度/8-11]。
在一些实施例中,所述处理器302还被配置成:对所述第一切片数据进行多线程加密,以及对所述第二切片数据进行多线程解密,从而提高整体加解密速度。
在一些实施例中,所述处理器302还被配置成:获取发起方发送的公钥,根据所述公钥的公钥位长度生成动态长度,基于所述动态长度对待加密的源文件进行切片得到若干第一切片数据,分别对所述第一切片数据进行加密后将得到的若干密文重新组合拼接,形成加密文件;
将所述加密文件和所述动态长度发送给所述发起方,以使所述发起方根据所述公钥对应的私钥的私钥位长度,对所述加密文件进行切片得到若干第二切片数据,并分别对所述第二切片数据进行解密得到若干解密内容,以及将所述解密内容与所述动态长度进行长度对比,判断所述加密文件是否被篡改过,当所述加密文件未被篡改时,则拼接所有的所述解密内容,得到所述源文件的内容。
具体实现方法参考前述方法实施例,此处不再赘述。
本申请可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本申请的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
注意,除非另有直接说明,否则本说明书(包含任何所附权利要求、摘要和附图)中所揭示的所有特征皆可由用于达到相同、等效或类似目的的可替代特征来替换。因此,除非另有明确说明,否则所公开的每一个特征仅是一组等效或类似特征的一个示例。在使用到的情况下,进一步地、较优地、更进一步地和更优地是在前述实施例基础上进行另一实施例阐述的简单起头,该进一步地、较优地、更进一步地或更优地后带的内容与前述实施例的结合作为另一实施例的完整构成。在同一实施例后带的若干个进一步地、较优地、更进一步地或更优地设置之间可任意组合的组成又一实施例。
虽然,上文中已经用一般性说明及具体实施例对本申请作了详尽的描述,但在本申请基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本申请精神的基础上所做的这些修改或改进,均属于本申请要求保护的范围。