CN111400744A - 文件加解密处理方法、装置、设备及可读存储介质 - Google Patents

文件加解密处理方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN111400744A
CN111400744A CN202010311782.6A CN202010311782A CN111400744A CN 111400744 A CN111400744 A CN 111400744A CN 202010311782 A CN202010311782 A CN 202010311782A CN 111400744 A CN111400744 A CN 111400744A
Authority
CN
China
Prior art keywords
data
encryption
file
decryption
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010311782.6A
Other languages
English (en)
Other versions
CN111400744B (zh
Inventor
杨峰
冯伟东
付波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202010311782.6A priority Critical patent/CN111400744B/zh
Publication of CN111400744A publication Critical patent/CN111400744A/zh
Application granted granted Critical
Publication of CN111400744B publication Critical patent/CN111400744B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

本发明公开了一种文件加解密处理方法,该方法通过判断当前处理的数据块的数据偏移是否与加解密粒度对齐,可以确定上一次加解密的数据块是否剩下不足加解密粒度长度的数据,对于每个当前待处理的原始数据块中剩下的不足加解密粒度长度的数据调用后续数据块中的数据补齐上一次加解密遗留的数据,这样既避免了不同数据长度下加解密方式不同导致的解密失败的情况,又可以避免在原始数据块间补零导致原始数据块改变,影响数据接收端对于数据块的使用的问题,可以保证每个数据块均按照统一的数据加解密方式进行数据加解密处理,降低了解密失败率。本发明还提供了文件加解密处理装置、计算机设备及可读存储介质,具有上述有益效果。

Description

文件加解密处理方法、装置、设备及可读存储介质
技术领域
本发明涉及数据处理技术领域,特别涉及文件加密处理方法、装置、文件解密处理方法、装置、计算机设备及可读存储介质。
背景技术
在边界管控安全解决方案中会针对企业需要用到的内部通信软件,比如Notes和Foxmail等邮件软件,RTX和钉钉企业版等IM通信软件,OA等企业业务办公系统,进行文件流转监控并对文件加解密,在发送文件时加密,在接收文件时解密。
为了降低加解密所带来的额外性能开销目前采用实时加解密,软件在读取待发送文件时是分块读取,读取多少加密多少,软件在接收文件写入文件时分块写入,写入多少就解密多少。同时,为了提高加密安全性,数据是分块加密,其中,加密算法采用AES等高安全性的区块加密算法,AES加密算法中不同的加密密钥对应的加密分块的长度有所不同,比如128位密钥对应的分块长度是16字节,256位密钥长度对应的分块长度是32字节等等。
而当读取和写入的加解密粒度不对齐(加密和解密时对于同一数据的分块方式(也就是加解密方式)不同)时,则会出现解密失败的情况。以128密钥对数据进行加解密为例说明,当软件发送文件时以20字节作为读取分块大小时,读取20字节的数据,而这段数据可能前16字节采用AES加密,剩下不足16字节的部分可以按照CRC字节加密方式加密,若软件读取时和写入数据时不按照相同的约定操作,比如接收时以30字节作为接收分块大小,则此时原本按CRC字节加密方式加密的不足16字节的部分就会按照16字节的整数倍解密,也可能导致读取时采用16字节的整数倍加密,写入时却不是按照16字节的整数倍解密这种加解密粒度不对齐的情况,引发解密失败。
因此,如何避免加解密粒度不对齐时的解密失败的情况,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供文件加解密处理方法,该方法可以解决读取加密和写入解密的文件偏移和数据长度粒度不对齐导致的解密失败的问题;本发明的另一目的是提供文件加解密处理装置、计算机设备及可读存储介质。
为解决上述技术问题,本发明提供一种文件加密处理方法,包括:
文件分块发送启动后,获取当前读取的原始数据块;
确定所述数据块的数据长度以及数据偏移;
判断所述数据偏移是否与加密粒度对齐;
若否,将存储的未加密数据与所述数据块按照字节排列顺序进行数据合并,作为待加密数据;
若是,将所述数据块作为所述待加密数据;
将所述待加密数据中前所述加密粒度的整数倍字节的数据进行加密处理,并将剩余数据作为所述未加密数据进行存储。
可选地,判断所述数据偏移是否与加密粒度对齐,包括:
判断所述数据偏移是否为加密粒度的整数倍。
可选地,文件分块发送启动后,获取当前读取的原始数据块,包括:
文件分块发送启动后,监控应用程序的文件读取流程,以获取当前读取的原始数据块。
可选地,所述文件加密处理方法还包括:
将所述加密处理后的数据块按照所述原始数据块的分块规则进行分块传输。
可选地,所述文件加密处理方法还包括:
当所述加密处理后的数据块传输完成时,输出加密传输完成的提示信息。
为解决上述技术问题,本发明提供一种文件加密处理装置,包括:
数据块获取单元,用于文件分块发送启动后,获取当前读取的原始数据块;
第一信息确定单元,用于确定所述数据块的数据长度以及数据偏移;
第一判断单元,用于判断所述数据偏移是否与加密粒度对齐;若否,触发第一数据合并单元;若是,触发第一数据确定单元;
所述第一数据合并单元,用于将存储的未加密数据与所述数据块按照字节排列顺序进行数据合并,作为待加密数据;
所述第一数据确定单元,用于将所述数据块作为所述待加密数据;
加密处理单元,用于将所述待加密数据中前所述加密粒度的整数倍字节的数据进行加密处理,并将剩余数据作为所述未加密数据进行存储。
为解决上述技术问题,本发明提供一种文件解密处理方法,包括:
文件分块接收启动后,确定当前写入的加密数据块;
确定所述数据块的数据长度以及数据偏移;
判断所述数据偏移是否与解密粒度对齐;
若否,将存储的加密数据与所述数据块按照字节排列顺序进行数据合并,作为待解密数据;
若是,将所述数据块作为所述待解密数据;
将所述待解密数据中前所述加密粒度的整数倍字节的数据进行解密处理,并将剩余数据作为所述加密数据进行存储。
为解决上述技术问题,本发明提供一种文件解密处理装置,包括:
数据块确定单元,用于文件分块接收启动后,确定当前写入的加密数据块;
第二信息确定单元,用于确定所述数据块的数据长度以及数据偏移;
第二判断单元,用于判断所述数据偏移是否与解密粒度对齐;若否,触发第二数据合并单元;若是,触发第二数据确定单元;
第二数据合并单元,用于将存储的加密数据与所述数据块按照字节排列顺序进行数据合并,作为待解密数据;
第二数据确定单元,用于将所述数据块作为所述待解密数据;
解密处理单元,用于将所述待解密数据中前所述加密粒度的整数倍字节的数据进行解密处理,并将剩余数据作为所述加密数据进行存储。
为解决上述技术问题,本发明提供一种计算机设备,包括:
存储器,用于存储程序;
处理器,用于执行所述程序时实现所述文件加密处理方法的步骤和/或所述文件解密处理方法的步骤。
为解决上述技术问题,本发明提供一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现所述文件加密处理方法的步骤和/或所述文件解密处理方法的步骤。
本发明提出一种文件加解密处理方法,该方法通过判断当前处理的数据块的数据偏移是否与加(解)密粒度对齐,可以确定上一次加(解)密的数据块是否剩下不足加(解)密粒度长度的数据,对于每个当前待处理的原始数据块中剩下的不足加(解)密粒度长度的数据不进行补零处理,或者调整加(解)密方式,而是调用后续数据块中的数据补齐上一次加(解)密遗留的数据,这样既避免了不同数据长度下加(解)密方式不同导致的无法确定每个数据的解密方式的问题,以及进一步导致的解密失败的情况,又可以避免在原始数据块间补零导致原始数据块改变,影响数据接收端对于数据块的使用的问题,可以保证每个数据块均按照统一的数据加解密方式进行数据加解密处理,大大简化了解密操作的难度,降低了解密失败率。
本发明还提供了文件加解密处理装置、计算机设备及可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种文件加密处理方法的流程图;
图2为本发明实施例提供的一种文件加密处理方式示意图;
图3为本发明实施例提供的一种文件加密处理装置的结构框图;
图4为本发明实施例提供的一种文件解密处理方法的流程图;
图5为本发明实施例提供的一种文件解密处理方式示意图;
图6为本发明实施例提供的一种文件解密处理装置的结构框图;
图7为本发明实施例提供的一种计算机设备的结构示意图;
图8为本发明实施例提供的一种文件加解密实现流程示意图。
具体实施方式
本发明的核心是提供一种文件加解密处理方法,该方法可以解决读取加密和写入解密的文件偏移和数据长度粒度不对齐导致的解密失败的问题;本发明的另一目的是提供文件加解密处理装置、计算机设备及可读存储介质。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参考图1,图1为本实施例提供的一种文件加密处理方法的流程图;该方法主要包括:
步骤s110、文件分块发送启动后,获取当前读取的原始数据块;
首先软件读写文件数据进行加解密时,软件发送方发送一个文件,分批读取待发送的文件,在读取过程中是分块读取的,本步骤中的原始数据块即在读取过程中当前读取的数据块,由于该数据块中的数据为原始的未加密的数据,故此称为原始数据块。
步骤s120、确定数据块的数据长度以及数据偏移;
数据长度指当前读取的原始数据块的数据长度,比如每20字节作为一个数据块进行数据读取时,数据块的数据长度就为20字节。
进程每次读取数据时,数据在文件中的存储位置就是数据偏移量,比如文件的大小是100字节,第一次从0开始读取20个字节,本次读取的数据偏移就是0,第二次从20开始读取30个字节,第二次读取的数据偏移就是20。
步骤s130、判断数据偏移是否与加密粒度对齐;
加密粒度也可以称为加密秘钥的分块长度,以AES加密算法(又称Rijndael加密法,一种区块加密标准),密钥长度为128位,加解密粒度为16字节,即以16字节作为分块标准进行加密。
长度对齐指数据长度与加密秘钥粒度匹配,比如秘钥对应的分块长度为16字节,数据长度为16字节或32字节时,刚好所有数据都可以按照当前秘钥进行加密处理。通过判断数据偏移是否与加密粒度对齐,可以确定上一次加密的数据块是否剩下不足加密粒度的数据,本实施例中对于每个当前待处理的原始数据块中剩下的不足加密粒度的数据在当前不做处理,即不进行补零处理,或者调整加密方式,调用后续原始数据块作为前一个原始数据块的补齐数据,这样既可以保证每个数据块均按照统一的数据加密方式进行加密处理,避免了不同数据长度下加密方式不同导致的无法确定每个数据的解密方式,以及进一步导致的解密失败的情况;同时也避免了在原始数据块间补零导致原始数据块改变,影响数据接收端对于数据块的使用的问题。
可选地,可以通过判断数据偏移是否为加密粒度的整数倍来实现,该种实现方式简单,且判别精准,当然,也可以通过其他判别方式,在此不再赘述。
若数据偏移未与加密粒度对齐,则触发步骤s140,若数据偏移与加密粒度对齐,则触发步骤s150。
步骤s140、将存储的未加密数据与数据块按照字节排列顺序进行数据合并,作为待加密数据;
未加密数据指在上次数据块加密(甚至前若干次)中不足加密粒度的数据,将存储的未加密数据与数据块按照字节排列顺序进行数据合并,即将读取偏移前移若干字节进行加密粒度补齐,保证了每个数据按照排列顺序依次按照统一的加密方式进行数据加密。
步骤s150、将数据块作为待加密数据;
若文件偏移为加密粒度的整数倍,证明在历史数据块加密中不存在剩余的未加密数据,此时可以直接对当前数据块进行加密处理。
步骤s160、将待加密数据中前加密粒度的整数倍字节的数据进行加密处理,并将剩余数据作为未加密数据进行存储。
加密粒度的整数倍字节即加密粒度的整数倍长度的数据,以加密粒度为16字节,待加密的数据长度为50字节为例,由于50=16*3+2,则进行加密处理的数据为前48字节的数据,剩余数据即为最后2字节的数据。
其中,进行加密处理的过程可以参照现有的根据数据长度进行差异性加密处理的实现方式,具体可以参照现有AES分块加密的实现,在此不再赘述。由于本实施例中每个待加密的数据均与加密粒度对齐,因此可以保证统一的数据加密方式,方便以统一的数据解密方式进行解密处理。
为加深理解,以下以A用户使用软件发送文件给B用户时A用户端的处理方式进行介绍,如图2所示为一种处理方式示意图。
A用户的软件在读取数据时,对读取的开始文件偏移和读取的长度进行计算,如果不是按照加密粒度对齐,主动给文件偏移和读取的长度进行校正,如果读取的文件偏移不是按照加密粒度对齐,则读取偏移前移几个字节进行补齐,如果读取长度不是按照加密粒度,则读取长度后移几个字节进行补齐。
基于上述介绍,本实施例提供的数据加密处理方法通过判断当前处理的数据块的数据偏移是否与加密粒度对齐,可以确定上一次加密的数据块是否剩下不足加密粒度长度的数据,对于每个当前待处理的原始数据块中剩下的不足加密粒度长度的数据不进行补零处理,或者调整加密方式,而是调用后续数据块中的数据补齐上一次加密遗留的数据,这样既避免了不同数据长度下加密方式不同导致的无法确定每个数据的解密方式的问题,以及进一步导致的解密失败的情况,又可以避免在原始数据块间补零导致原始数据块改变,影响数据接收端对于数据块的使用的问题,可以保证每个数据块均按照统一的数据加解密方式进行数据加解密处理,大大简化了解密操作的难度,降低了解密失败率。
实施例二
为加深对上述实施例中介绍的文件加密方法的理解,本实施例中以调用密钥长度为128位,加密粒度为16字节的AES加密算法,文件的大小是100字节,每20字节作为一个数据块进行数据读取为例进行实现方式的介绍。
第一次从0开始读取20个字节,则第一次读取的文件偏移就是0,读取的内容长度是20,文件偏移0是16的整数倍,不需要校正,长度20不是16的整数倍,20=16+4,读取20个字节之后的加密过程为:把其中的前16个字节进行加密,剩下4个字节不加密,但是需要保存下来。
第二次从文件偏移为20开始读取20个字节,文件偏移为20,不是16的整数倍,20=16+4,则需要把第一次剩下的4个字节取出来,和本次读取的20个字节合并,得到24个字节,则24=16+8,24个字节的加密过程为:把其中的前16个字节进行加密,剩下8个字节不加密,但是需要保存下来。
第三次从文件偏移为40开始读取20个字节,文件偏移为40,不是16的整数倍,40=16*2+8,则需要把上一次剩下的8个字节取出来,和本次读取的20个字节合并,得到28个字节,则28=16+12,28个字节的加密过程为:把其中的前16个字节进行加密,剩下12个字节不加密,但是需要保存下来。
以此类推,完成100个字节的文件的加密处理过程。
实施例三
基于上述实施例,为提升原始数据块的获取速度,从而进一步提升文件加密处理的速度,可选地,可以文件分块发送启动后,通过监控应用程序的文件读取流程,以获取当前读取的原始数据块。
通过对应用程序的读写文件操作进行监控,可以在确定当前读取数据块的同时进行加密处理,相比被动接收数据,主动监控以获取数据可以显著提升数据获取速度。
本实施例中仅以上述数据获取方式为例进行介绍,其他具体的数据获取方式均可参照本实施例的介绍,在此不再赘述。
进一步地,在对数据加密处理后,为加强数据处理流程间联系的紧密性,保证整体数据处理效率,可以在加密处理后,立即将加密处理后的数据块按照原始数据块的分块规则进行分块传输。该方式通过整体的数据加密处理以及发送流程的全面控制,避免了多设备合作带来的交互时延,可以显著提升数据传输效率。
另外,为保证用户可以了解当前处理进度,当加密处理后的数据块传输完成时,可以输出加密传输完成的提示信息。以便用户立即触发数据传输完成后的相关操作。
实施例四
请参考图3,图3为本实施例提供的一种文件加密处理装置的结构框图;该装置主要包括:数据块获取单元110、第一信息确定单元120、第一判断单元130、第一数据合并单元140、第一数据确定单元150以及加密处理单元160。本实施例提供的文件加密处理装置可与上述文件加密处理方法相互对照。
其中,数据块获取单元110主要用于文件分块发送启动后,获取当前读取的原始数据块;
第一信息确定单元120主要用于确定数据块的数据长度以及数据偏移;
第一判断单元130主要用于判断数据偏移是否与加密粒度对齐;若否,触发第一数据合并单元140;若是,触发第一数据确定单元150;
第一数据合并单元140主要用于将存储的未加密数据与数据块按照字节排列顺序进行数据合并,作为待加密数据;
第一数据确定单元150主要用于将数据块作为待加密数据;
加密处理单元160主要用于将待加密数据中前加密粒度的整数倍字节的数据进行加密处理,并将剩余数据作为未加密数据进行存储。
本实施例介绍的文件加密处理装置通过判断当前处理的数据块的数据偏移是否与加密粒度对齐,可以确定上一次加密的数据块是否剩下不足加密粒度长度的数据,对于每个当前待处理的原始数据块中剩下的不足加密粒度长度的数据不进行补零处理,或者调整加密方式,而是调用后续数据块中的数据补齐上一次加密遗留的数据,这样既避免了不同数据长度下加密方式不同导致的无法确定每个数据的解密方式的问题,以及进一步导致的解密失败的情况,又可以避免在原始数据块间补零导致原始数据块改变,影响数据接收端对于数据块的使用的问题,可以保证每个数据块均按照统一的数据加解密方式进行数据加解密处理,大大简化了解密操作的难度,降低了解密失败率。
实施例五
请参考图4,图4为本实施例提供的一种文件解密处理方法的流程图;该方法主要包括:
步骤s210、文件分块接收启动后,确定当前写入的加密数据块;
首先软件读写文件数据进行解密时,软件接收方接收一个文件,分批接收网络数据,并分批写入到文件中,接收到的数据均为已加密的数据,需要进行实时分块解密处理。
步骤s220、确定数据块的数据长度以及数据偏移;
步骤s230、判断数据偏移是否与解密粒度对齐;
若文件偏移不与解密粒度对齐,则触发步骤s240,若文件偏移与解密粒度对齐,则触发步骤s250。
步骤s240、将存储的加密数据与数据块按照字节排列顺序进行数据合并,作为待解密数据;
步骤s250、将数据块作为待解密数据;
步骤s260、将待解密数据中前加密粒度的整数倍字节的数据进行解密处理,并将剩余数据作为加密数据进行存储。
需要说明的是,本实施例中步骤s220至步骤s260部分可与实施例一中的步骤s120至步骤s160部分相互参照,在此不再赘述。
为加深理解,以下以A用户使用软件发送文件给B用户时B用户端的处理方式进行介绍,如图5所示为一种处理方式示意图。
B用户的软件在写入数据时,对写入的开始文件偏移和写入的长度进行计算,如果不是按照解密粒度对齐,主动给文件偏移和写入的长度进行校正,如果写入的文件偏移不是按照解密粒度对齐,则写入偏移前移几个字节进行字节补齐,补齐的数据用上一次写入的尾部未补齐的数据进行填充,如果写入长度不是按照解密粒度对齐,则写入长度前移几个字节进行补齐,把剩下的几个不是对齐的字节保存作为下次写入的补齐数据。
基于上述介绍,本实施例提供的数据解密处理方法通过判断当前处理的数据块的数据偏移是否与解密粒度对齐,可以确定上一次解密的数据块是否剩下不足解密粒度长度的数据,对于每个当前待处理的数据块中剩下的不足解密粒度长度的数据不进行补零处理,或者调整解密方式,而是调用后续数据块中的数据补齐上一次解密遗留的数据,可以保证每个数据块均按照统一的数据加解密方式进行数据加解密处理,大大简化了解密操作的难度,降低了解密失败率。
实施例六
请参考图6,图6为本实施例提供的一种文件解密处理装置的结构框图;该装置主要包括:数据块确定单元210、第二信息确定单元220、第二判断单元230、第二数据合并单元240、第二数据确定单元250以及解密处理单元260。本实施例提供的文件解密处理装置可与上述文件解密处理方法相互对照。
其中,数据块确定单元210主要用于文件分块接收启动后,确定当前写入的加密数据块;
第二信息确定单元220主要用于确定数据块的数据长度以及数据偏移;
第二判断单元230主要用于判断数据偏移是否与解密粒度对齐;若否,触发第二数据合并单元240;若是,触发第二数据确定单元250;
第二数据合并单元240主要用于将存储的加密数据与数据块按照字节排列顺序进行数据合并,作为待解密数据;
第二数据确定单元250主要用于将数据块作为待解密数据;
解密处理单元260主要用于将待解密数据中前加密粒度的整数倍字节的数据进行解密处理,并将剩余数据作为加密数据进行存储。
实施例七
本实施例提供一种计算机设备,包括:存储器以及处理器。
其中,存储器用于存储程序;
处理器用于执行程序时实现程序时实现文件加密处理方法的步骤和/或文件解密处理方法的步骤。具体可参照上述实施例中对文件加密方法以及文件解密的介绍,在此不再赘述。
请参考图7,为本实施例提供的一种计算机设备的结构示意图,该计算机设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在计算机设备301上执行存储介质330中的一系列指令操作。
计算机设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上面所描述的文件加密方法以及文件解密方法中的步骤可以由本实施例中计算机设备的结构实现。
实施例八
本实施例公开一种可读存储介质,其上存储有程序,程序被处理器执行时实现程序时实现文件加密处理方法的步骤和/或文件解密处理方法的步骤。具体可参照上述实施例中对文件加密方法以及文件解密的介绍,在此不再赘述。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
实施例九
为解决加解密粒度不对齐时的解密失败的问题,本申请中提供了另外一种文件加解密处理方式,该方法通过对整个文件进行整体加解密,而不是分块加解密的方式,可以保证文件以统一的方式进行加解密,保证解密效果。
图8所示为实现流程示意图,具体实现方式如下:
1、A用户使用软件发送文件给B用户。
2、A用户的软件在读取文件之前,先对整个文件进行加密,然后软件分块读取密文进行数据发送。
3、B用户的软件在接收到密文数据时,先把数据写入到文件中,等文件所有的数据都写完之后,再对整个文件进行解密。
这种方式不管读写过程的粒度是否对齐,最后整个文件的密文不会改变,从而最后解密也会成功。
该方案不是实时动态加解密,相对于上述加解密方法会多两次全文件操作,一次全文件加密操作,一次全文件解密操作,会带来额外的IO操作时间,性能开销随着文件的大小增加而增加,会带来一定的用户体验差异。
需要说明的是,本申请提供的上述针对应用程序实时加解密粒度不对齐的解决方案(文件加密处理方法以及文件解密处理方法)均可以利用DLL注入(将一个DLL通过一些方法放进某个进程的地址空间里,让它成为那个进程的一部分)技术,注入相应DLL到应用程序(用于控制文件分块加解密传输的应用程序)中,以实现响应的加解密处理功能,当然,也可以以其他方式来实现,本申请对此不作限定。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的文件加解密处理方法、文件加解密处理装置、计算机设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (10)

1.一种文件加密处理方法,其特征在于,包括:
文件分块发送启动后,获取当前读取的原始数据块;
确定所述数据块的数据长度以及数据偏移;
判断所述数据偏移是否与加密粒度对齐;
若否,将存储的未加密数据与所述数据块按照字节排列顺序进行数据合并,作为待加密数据;
若是,将所述数据块作为所述待加密数据;
将所述待加密数据中前所述加密粒度的整数倍字节的数据进行加密处理,并将剩余数据作为所述未加密数据进行存储。
2.如权利要求1所述的文件加密处理方法,其特征在于,判断所述数据偏移是否与加密粒度对齐,包括:
判断所述数据偏移是否为加密粒度的整数倍。
3.如权利要求1所述的文件加密处理方法,其特征在于,文件分块发送启动后,获取当前读取的原始数据块,包括:
文件分块发送启动后,监控应用程序的文件读取流程,以获取当前读取的原始数据块。
4.如权利要求1所述的文件加密处理方法,其特征在于,还包括:
将所述加密处理后的数据块按照所述原始数据块的分块规则进行分块传输。
5.如权利要求4所述的文件加密处理方法,其特征在于,还包括:
当所述加密处理后的数据块传输完成时,输出加密传输完成的提示信息。
6.一种文件加密处理装置,其特征在于,包括:
数据块获取单元,用于文件分块发送启动后,获取当前读取的原始数据块;
第一信息确定单元,用于确定所述数据块的数据长度以及数据偏移;
第一判断单元,用于判断所述数据偏移是否与加密粒度对齐;若否,触发第一数据合并单元;若是,触发第一数据确定单元;
所述第一数据合并单元,用于将存储的未加密数据与所述数据块按照字节排列顺序进行数据合并,作为待加密数据;
所述第一数据确定单元,用于将所述数据块作为所述待加密数据;
加密处理单元,用于将所述待加密数据中前所述加密粒度的整数倍字节的数据进行加密处理,并将剩余数据作为所述未加密数据进行存储。
7.一种文件解密处理方法,其特征在于,包括:
文件分块接收启动后,确定当前写入的加密数据块;
确定所述数据块的数据长度以及数据偏移;
判断所述数据偏移是否与解密粒度对齐;
若否,将存储的加密数据与所述数据块按照字节排列顺序进行数据合并,作为待解密数据;
若是,将所述数据块作为所述待解密数据;
将所述待解密数据中前所述加密粒度的整数倍字节的数据进行解密处理,并将剩余数据作为所述加密数据进行存储。
8.一种文件解密处理装置,其特征在于,包括:
数据块确定单元,用于文件分块接收启动后,确定当前写入的加密数据块;
第二信息确定单元,用于确定所述数据块的数据长度以及数据偏移;
第二判断单元,用于判断所述数据偏移是否与解密粒度对齐;若否,触发第二数据合并单元;若是,触发第二数据确定单元;
第二数据合并单元,用于将存储的加密数据与所述数据块按照字节排列顺序进行数据合并,作为待解密数据;
第二数据确定单元,用于将所述数据块作为所述待解密数据;
解密处理单元,用于将所述待解密数据中前所述加密粒度的整数倍字节的数据进行解密处理,并将剩余数据作为所述加密数据进行存储。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述程序时实现如权利要求1至5任一项所述文件加密处理方法的步骤和/或如权利要求7所述文件解密处理方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有程序,所述程序被处理器执行时实现如权利要求1至5任一项所述文件加密处理方法的步骤和/或如权利要求7所述文件解密处理方法的步骤。
CN202010311782.6A 2020-04-20 2020-04-20 文件加解密处理方法、装置、设备及可读存储介质 Active CN111400744B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010311782.6A CN111400744B (zh) 2020-04-20 2020-04-20 文件加解密处理方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010311782.6A CN111400744B (zh) 2020-04-20 2020-04-20 文件加解密处理方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN111400744A true CN111400744A (zh) 2020-07-10
CN111400744B CN111400744B (zh) 2023-09-05

Family

ID=71437104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010311782.6A Active CN111400744B (zh) 2020-04-20 2020-04-20 文件加解密处理方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN111400744B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256464A (zh) * 2020-10-20 2021-01-22 湖南国科微电子股份有限公司 硬盘数据纠错方法、装置、电子设备及存储介质
CN115134171A (zh) * 2022-08-30 2022-09-30 湖南麒麟信安科技股份有限公司 隔离网络环境下加密存储报文的方法、装置、系统及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150149788A1 (en) * 2013-11-27 2015-05-28 Nvidia Corporation System, method, and computer program product for optimizing data encryption and decryption by implementing asymmetric aes-cbc channels
CN105897406A (zh) * 2016-06-02 2016-08-24 北京赛思信安技术股份有限公司 一种明密文等长的aes加解密的装置
CN108833343A (zh) * 2018-04-28 2018-11-16 南京搜文信息技术有限公司 一种支持大数据的并行加密方法及解密方法
US20190238547A1 (en) * 2018-01-31 2019-08-01 Wells Fargo Bank, N.A. Apparatus and methods for securely delivering digital content
CN110929274A (zh) * 2019-11-11 2020-03-27 深圳供电局有限公司 一种采用Blowfish对文件进行加解密的方法、系统及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150149788A1 (en) * 2013-11-27 2015-05-28 Nvidia Corporation System, method, and computer program product for optimizing data encryption and decryption by implementing asymmetric aes-cbc channels
CN105897406A (zh) * 2016-06-02 2016-08-24 北京赛思信安技术股份有限公司 一种明密文等长的aes加解密的装置
US20190238547A1 (en) * 2018-01-31 2019-08-01 Wells Fargo Bank, N.A. Apparatus and methods for securely delivering digital content
CN108833343A (zh) * 2018-04-28 2018-11-16 南京搜文信息技术有限公司 一种支持大数据的并行加密方法及解密方法
CN110929274A (zh) * 2019-11-11 2020-03-27 深圳供电局有限公司 一种采用Blowfish对文件进行加解密的方法、系统及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256464A (zh) * 2020-10-20 2021-01-22 湖南国科微电子股份有限公司 硬盘数据纠错方法、装置、电子设备及存储介质
CN115134171A (zh) * 2022-08-30 2022-09-30 湖南麒麟信安科技股份有限公司 隔离网络环境下加密存储报文的方法、装置、系统及介质
CN115134171B (zh) * 2022-08-30 2022-11-29 湖南麒麟信安科技股份有限公司 隔离网络环境下加密存储报文的方法、装置、系统及介质

Also Published As

Publication number Publication date
CN111400744B (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
CN109510703B (zh) 一种数据加解密方法及装置
CN111654511A (zh) 一种链式数据加密方法、链式数据解密方法及相应的系统
EP3850784B1 (en) Public/private key system with decreased public key size
CN111464564B (zh) 一种基于对称密码算法的数据高速加解密方法及装置
CN111431586B (zh) 一种卫星网络安全通信方法
CN112187741B (zh) 基于运维审计系统的登录认证方法、装置和电子装置
CN111970109B (zh) 一种数据传输方法及系统
CN111400744A (zh) 文件加解密处理方法、装置、设备及可读存储介质
CN116321129B (zh) 一种轻量级的基于动态密钥的电力交易专网通信加密方法
CN113014380B (zh) 文件数据的密码管理方法、装置、计算机设备及存储介质
CN113727058A (zh) 一种多媒体会议数据处理方法、系统、设备及存储介质
CN112600838B (zh) 一种can总线数据的加密方法、装置、存储介质及电子设备
CN112948867A (zh) 加密报文的生成与解密方法、装置及电子设备
US9152801B2 (en) Cryptographic system of symmetric-key encryption using large permutation vector keys
CN110381067B (zh) Ip包加密方法、解密方法及其装置
CN112929166A (zh) 一种基于Modbus-TCP协议的主站、从站及数据传输系统
CN107888611B (zh) 通信方法和装置
CN106488047B (zh) 一种基于移动终端的通话数据传输控制方法及系统
CN113452508A (zh) 数据加密方法、装置、设备和计算机可读存储介质
JP2009098321A (ja) 情報処理装置
CN115277050B (zh) 数据发送方法、数据接收方法及网络设备
CN113285956B (zh) 一种控制器局域网络总线加密方法、装置、设备及介质
CN115277049B (zh) 数据发送方法、数据接收方法及网络设备
KR20190133972A (ko) IoT 환경에서 기기 인증키를 활용한 메시지 암호키 운용을 위한 단말 기기, 서버, 시스템 및 방법
CN117499040B (zh) 视频流加、解密装置、方法、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant