CN117762877A - 应用于临时文件的数据处理方法、装置和设备 - Google Patents
应用于临时文件的数据处理方法、装置和设备 Download PDFInfo
- Publication number
- CN117762877A CN117762877A CN202311847596.4A CN202311847596A CN117762877A CN 117762877 A CN117762877 A CN 117762877A CN 202311847596 A CN202311847596 A CN 202311847596A CN 117762877 A CN117762877 A CN 117762877A
- Authority
- CN
- China
- Prior art keywords
- data
- written
- data block
- block
- temporary file
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 claims abstract description 49
- 230000008569 process Effects 0.000 claims description 17
- 230000001680 brushing effect Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 13
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种应用于临时文件的数据处理方法、装置和设备。该方法包括:响应于对临时文件的数据写入指令,从临时文件中获取待写入数据块;确定待写入数据块的空闲空间,并将空闲空间,与数据写入指令中所包括的待写数据,进行比较,得到数据比较结果;若基于数据比较结果,确定出待写入数据块能写入全部的待写数据,则将待写数据写入待写入数据块,并对待写入数据块进行数据对齐处理,得到对齐后的目标数据块;基于加密密钥,对对齐后的目标数据块中的数据,进行加密处理,得到加密的数据,并将加密的数据,存储至临时文件中。本申请的方法,能够在基于临时文件进行外部排序时,保证临时文件中的数据安全,避免出现数据泄露的问题。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种应用于临时文件的数据处理方法、装置和设备。
背景技术
在当前的环境下,互联中每时每刻都在产生着海量的数据,因此,企业的数据库中保存的数据量呈现着日益递增的趋势。企业在大数据场景下,使用数据库进行数据排序操作时,由于需要处理海量的数据,就很可能出现内存使用率过高,从而影响其它业务的情况。此时,一般可以通过生成临时文件,来进行外部排序,从而避免内存占用过大影响其它业务的问题。
但是,在外部排序时,由外部排序所生成的临时文件中,存储的临时结果集通常是明文存储的,这就使临时文件中存储的数据存在数据泄露的风险,存在一定数据安全问题。
发明内容
本申请提供一种应用于临时文件的数据处理方法、装置和设备,用以解决现有技术中在使用临时文件进行外部排序时,存在数据泄露风险的问题。
第一方面,本申请提供一种应用于临时文件的数据处理方法,包括:
响应于对临时文件的数据写入指令,从所述临时文件中获取待写入数据块;其中,所述数据写入指令中包括待写数据;
确定所述待写入数据块的空闲空间,并将所述空闲空间,与所述数据写入指令中所包括的待写数据,进行比较,得到数据比较结果;其中,所述数据比较结果用于表征所述待写入数据块能否写入全部的所述待写数据;
若基于所述数据比较结果,确定出所述待写入数据块能写入全部的所述待写数据,则将所述待写数据写入所述待写入数据块,并对所述待写入数据块进行数据对齐处理,得到对齐后的目标数据块;其中,所述对齐后的目标数据块表征包含预设长度数据的数据块;
基于加密密钥,对所述对齐后的目标数据块中的数据,进行加密处理,得到加密的数据,并将所述加密的数据,存储至所述临时文件中。
一个示例中,所述待写入数据块中包括页头数据;其中,所述页头数据表征所述待写入数据块内已写入数据的数据量;所述确定所述待写入数据块的空闲空间,包括:
基于所述待写入数据块的数据空间与所述页头数据,确定所述待写入数据块的空闲空间。
一个示例中,所述方法还包括:
若基于所述待写入数据块的数据空间与所述页头数据,确定出所述待写入数据块不存在空闲空间,则确定所述待写入数据块是否带有目标标识;其中,所述目标标识表征所述待写入数据块内的数据与磁盘中的数据不相同;
若确定出所述待写入数据块带有所述目标标识,则对所述待写入数据块进行刷盘处理;否则,清空所述待写入数据块中的数据。
一个示例中,所述对所述待写入数据块进行数据对齐处理,得到对齐后的目标数据块,包括:
若确定出所述待写入数据块在写入待写数据之后,仍存在剩余空间,则对所述剩余空间进行补零处理,得到对齐后的目标数据块。
一个示例中,所述方法还包括:
响应于对临时文件的数据读取指令,从磁盘中获取待读取数据块;其中,所述待读取数据块表征加密的数据块;
基于解密密钥,对所述待读取数据块进行解密处理,得到解密后的数据块;并将所述解密后的数据块中的数据加载至内存中。
一个示例中,所述方法还包括:
若确定出加载至内存中的数据不满足预设长度要求的情况下,生成并展示错误提示信息。
一个示例中,所述方法还包括:
响应于数据库启动指令,生成对称密钥;并将所述对称密钥存储在与所述数据库的数据库类型相匹配的目标堆区中;其中,所述对称密钥用于对数据块中的数据进行加密和解密;所述数据库类型表征所述数据库所包含进程的类型。
第二方面,本申请提供一种应用于临时文件的数据处理装置,包括:
响应单元,用于响应于对临时文件的数据写入指令,从所述临时文件中获取待写入数据块;其中,所述数据写入指令中包括待写数据;
确定单元,用于确定所述待写入数据块的空闲空间,并将所述空闲空间,与所述数据写入指令中所包括的待写数据,进行比较,得到数据比较结果;其中,所述数据比较结果用于表征所述待写入数据块能否写入全部的所述待写数据;
写入单元,用于若基于所述数据比较结果,确定出所述待写入数据块能写入全部的所述待写数据,则将所述待写数据写入所述待写入数据块,并对所述待写入数据块进行数据对齐处理,得到对齐后的目标数据块;其中,所述对齐后的目标数据块表征包含预设长度数据的数据块;
存储单元,用于基于加密密钥,对所述对齐后的目标数据块中的数据,进行加密处理,得到加密的数据,并将所述加密的数据,存储至所述临时文件中。
一个示例中,所述待写入数据块中包括页头数据;其中,所述页头数据表征所述待写入数据块内已写入数据的数据量;此时,确定单元,包括:
空间确定模块,用于基于所述待写入数据块的数据空间与所述页头数据,确定所述待写入数据块的空闲空间。
一个示例中,确定单元,包括:
空间清理模块,用于若基于所述待写入数据块的数据空间与所述页头数据,确定出所述待写入数据块不存在空闲空间,则确定所述待写入数据块是否带有目标标识;其中,所述目标标识表征所述待写入数据块内的数据与磁盘中的数据不相同;
若确定出所述待写入数据块带有所述目标标识,则对所述待写入数据块进行刷盘处理;否则,清空所述待写入数据块中的数据。
一个示例中,确定单元,包括:
数据对齐模块,用于若确定出所述待写入数据块在写入待写数据之后,仍存在剩余空间,则对所述剩余空间进行补零处理,得到对齐后的目标数据块。
一个示例中,该装置还包括:
加载单元,用于响应于对临时文件的数据读取指令,从磁盘中获取待读取数据块;其中,所述待读取数据块表征加密的数据块;
基于解密密钥,对所述待读取数据块进行解密处理,得到解密后的数据块;并将所述解密后的数据块中的数据加载至内存中。
一个示例中,该装置还包括:
报错单元,用于若确定出加载至内存中的数据不满足预设长度要求的情况下,生成并展示错误提示信息。
一个示例中,该装置还包括:
密钥生成单元,用于响应于数据库启动指令,生成对称密钥;并将所述对称密钥存储在与所述数据库的数据库类型相匹配的目标堆区中;其中,所述对称密钥用于对数据块中的数据进行加密和解密;所述数据库类型表征所述数据库所包含进程的类型。
第三方面,本申请提供一种计算机设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现第一方面所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面所述的方法。
第五方面,本申请提供一种计算机程序产品,所述计算机程序产品包括:计算机执行指令,所述计算机执行指令存储在可读存储介质中,计算机设备的至少一个处理器可以从所述可读存储介质读取所述计算机执行指令,所述至少一个处理器执行所述计算机执行指令,使得计算机设备执行第一方面所述的方法。
本申请提供的应用于临时文件的数据处理方法、装置和设备,可以通过响应于对临时文件的数据写入指令,从临时文件中获取待写入数据块,此时,可以通过将数据写入指令中所包括的待写数据写入该待写入数据块中,以将待写数据存储至磁盘的临时文件中。具体的,可以先确定待写入数据块的空闲空间,从而保证能够将至少部分待写数据写入至待写入数据块中。此时,可以将空闲空间,与数据写入指令中所包括的待写数据,进行比较,得到数据比较结果。若基于数据比较结果,确定出待写入数据块能写入全部的待写数据,则将待写数据写入待写入数据块,并对待写入数据块进行数据对齐处理,得到对齐后的目标数据块,从而可以保证在将待写入数据块中的数据,存储至磁盘之前,待写入数据块的数据长度为固定长度,也即预设长度。此时,就能实现将临时文件的流式存储,变更为以数据块为单位的段页式存储,从而能够实现对临时文件数据(例如,待写数据)的加密处理,此时,就可以基于加密密钥,对对齐后的目标数据块中的数据,进行加密处理,得到加密的数据。然后,再将加密的数据块,存储至临时文件中。此时,可以在将临时文件数据存储至磁盘之前进行加密,从而可以使临时文件数据在内存中以明文的形式存在,而在磁盘中以密文的形式存在,避免了数据泄露的问题,保证了临时文件数据的安全性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种应用于临时文件的数据处理方法的流程示意图;
图2为本申请实施例提供的另一种应用于临时文件的数据处理方法的流程示意图;
图3为本申请实施例提供的一种写入临时文件数据的流程示意图;
图4为本申请实施例提供的另一种写入临时文件数据的流程示意图;
图5为本申请实施例提供的一种加载临时文件数据的流程示意图;
图6为本申请实施例提供的另一种加载临时文件数据的流程示意图;
图7为本申请实施例提供的一种应用于临时文件的数据处理装置的结构示意图;
图8为本申请实施例提供的另一种应用于临时文件的数据处理装置的结构示意图;
图9为本申请实施例提供的一种计算机设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
下面对本申请实施例提到的名词进行解释说明:
临时文件:数据库在执行复杂操作,例如,排序类操作时,因内存不足,从而暂时地在磁盘中存储排序所产生的中间结果集的文件。
刷盘:将内存中缓存的临时文件数据刷写到物理磁盘的临时文件上。
目前,针对大数据场景下的,基于数据库进行数据排序时,通常会由于内存不足,来借助临时文件进行外部排序,以避免内存占用过大影响其它业务的问题。
由于临时文件的生命周期有限,导致现有的针对外部排序的数据处理方法,主要聚焦于数据处理效率,例如,主要集中于减少内存的使用率、提高排序的速度、提升排序时的并发度等。因此,这就导致在外部排序时,外部排序所生成的临时文件中所存储的临时结果集,通常是明文存储的,而忽略了对临时文件中的数据进行加密的问题,这就使临时文件中存储的数据存在一定的数据泄露的风险,进而存在一定的数据安全问题。
除此之外,由于临时文件的流式存储方式,导致临时文件在进行刷盘的时候,不关心内存中存在多少数据,而从磁盘的临时文件加载数据到内存时,也允许加载到临时文件的末尾而内存还未满的情况。并且,一般的对称加密算法要求只可以加密或解密定长的数据,在数据不定长的情况下,就很难实现加密。例如,在临时文件数据在刷盘时要刷6k大小的数据,此时,就需要将这6k大小的数据全部加密。但是,如果上层应用只需要4k大小的数据,此时,就只需要加载4k大小的数据到内存,这时再针对这部分数据做解密,显然加密与解密的长度是不一样的,这就会导致解密失败,得到错误的解密结果。此时,通过常规的对称加密算法就无法实现对临时文件数据的加密,进而无法有效保证临时文件中数据的安全性。
因此,如何避免临时文件中的敏感数据,在外部排序时,通过临时文件泄密成为亟需解决的问题。
本申请提供的应用于临时文件的数据处理方法,可以将流式存储的文件变更为段页式的存储文件,然后,再对临时文件数据进行加密,以解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的一种应用于临时文件的数据处理方法的流程示意图,该应用于临时文件的数据处理方法,具体包括如下步骤:
S101、响应于对临时文件的数据写入指令,从临时文件中获取待写入数据块。
其中,数据写入指令中包括待写数据。
一个示例中,对临时文件的数据写入指令表征向临时文件中写入数据指令。
一个示例中,在临时文件为新创建的文件时,则待写入数据块就可以为从该临时文件的起始位置开始,读取的数据块;在临时文件不是新创建的文件时,则可以从上次刷盘的终止位置开始,读取数据块,得到待写入数据块。这里对待写入数据块的大小不作具体限定,也即对读取的数据块的长度不作限定,以满足实际需要为准。
S102、确定待写入数据块的空闲空间,并将空闲空间,与数据写入指令中所包括的待写数据,进行比较,得到数据比较结果。
其中,数据比较结果用于表征待写入数据块能否写入全部的待写数据。
一个示例中,在获取待写入数据块之后,可以判断该待写入数据块是否存在空闲空间。在确定出待写入数据块存在空闲空间的情况下,则可以将空闲空间与待写数据进行比较。在确定出待写数据的数据长度,小于或者等于空闲空间所能接收数据的数据长度的情况下,则可以确定数据比较结果表征待写入数据块能写入全部的待写数据。否则,数据比较结果表征待写入数据块不能写入全部的待写数据。
S103、若基于数据比较结果,确定出待写入数据块能写入全部的待写数据,则将待写数据写入待写入数据块,并对待写入数据块进行数据对齐处理,得到对齐后的目标数据块。
其中,对齐后的目标数据块表征包含预设长度数据的数据块。
一个示例中,包含预设长度数据的数据块表征待写入数据块已满的数据块,此时,预设长度即为待写入数据块所能接收数据的数据长度。
此时,在基于数据比较结果确定出,待写数据的数据长度等于空闲空间所能接收数据的数据长度的情况下,则在将待写数据写入待写入数据块之后,待写入数据块已满,此时,可以直接得到对齐后的目标数据块,而不再额外对待写入数据块进行数据对齐处理。
S104、基于加密密钥,对对齐后的目标数据块中的数据,进行加密处理,得到加密的数据,并将加密的数据,存储至临时文件中。
一个示例中,加密密钥可以理解为根据对称加密算法确定的对称密钥,此时,该加密密钥不仅可以用来加密数据,还可以解密数据。
或者,该加密密钥也可以为其他加密算法所确定的用于加密的密钥,这里对加密密钥的确定方式不作限定,以满足实际需要为准。在确定出加密密钥之后,还可以同时确定与该加密密钥相对应的解密密钥,从而可以基于该解密密钥,来解密临时文件中的数据。
一个示例中,在将加密的数据,存储至临时文件中,可以通过对加密处理之后的,对齐后的目标数据块进行刷盘处理,以将对齐后的目标数据块中所包含的加密的数据存储至磁盘的临时文件中。
通过上述描述可知,本申请实施例,可以通过响应于对临时文件的数据写入指令,从临时文件中获取待写入数据块,此时,可以通过将数据写入指令中所包括的待写数据写入该待写入数据块中,以将待写数据存储至磁盘的临时文件中。具体的,可以先确定待写入数据块的空闲空间,从而保证能够将至少部分待写数据写入至待写入数据块中。此时,可以将空闲空间,与数据写入指令中所包括的待写数据,进行比较,得到数据比较结果。若基于数据比较结果,确定出待写入数据块能写入全部的待写数据,则将待写数据写入待写入数据块,并对待写入数据块进行数据对齐处理,得到对齐后的目标数据块,从而可以保证在将待写入数据块中的数据,存储至磁盘之前,待写入数据块的数据长度为固定长度,也即预设长度。此时,就能实现将临时文件的流式存储,变更为以数据块为单位的段页式存储,从而能够实现对临时文件数据(例如,待写数据)的加密处理,此时,就可以基于加密密钥,对对齐后的目标数据块中的数据,进行加密处理,得到加密的数据。然后,再将加密的数据块,存储至临时文件中。此时,可以在将临时文件数据存储至磁盘之前进行加密,从而可以使临时文件数据在内存中以明文的形式存在,而在磁盘中以密文的形式存在,避免了数据泄露的问题,保证了临时文件数据的安全性。
图2为本申请实施例提供的另一种应用于临时文件的数据处理方法的流程示意图,该应用于临时文件的数据处理方法,具体包括如下步骤:
S201、响应于数据库启动指令,生成对称密钥;并将对称密钥存储在与数据库的数据库类型相匹配的目标堆区中。
其中,对称密钥可以理解为基于对称加密算法确定的,用于对数据块中的数据进行加密和解密的密钥;数据库类型表征数据库所包含进程的类型。
一个示例中,数据库类型可以包括第一类数据库和第二类数据库,其中,第一类数据库表征只包含主进程的数据库,第二类数据库表征包含主进程和子进程的数据库。
此时,在数据库类型为第一类数据库的情况下,则可以将对称密钥存储在该数据库对应的内存的目标堆区中;在数据库类型为第二类数据库的情况下,则可以将对称密钥存储在共享内存的目标堆区中,以使数据库的主进程和子进程,均可以通过访问该共享内存,获取对称密钥。
上述实施方式中,可以在每次启动数据库的情况下,均重新生成对应的对称密钥,可以有效防止对称密钥泄露,进而可以进一步保证数据的安全。
S202、响应于对临时文件的数据写入指令,从临时文件中获取待写入数据块。
其中,数据写入指令中包括待写数据。
一个示例中,本步骤可以参见上述S101所描述的内容,这里不再详细描述。
一个示例中,待写入数据块可以包括页头数据和内容数据,其中,页头数据表征待写入数据块内已写入数据的数据量,内容数据表征待写入数据块内已写入数据的数据内容。此时,可以执行下面S202所描述的步骤。
S203、基于待写入数据块的数据空间与页头数据,确定待写入数据块的空闲空间。
一个示例中,假设,页头数据的取值与待写入数据块的数据空间相同的情况下,则表示待写入数据块不存在空闲空间;在页头数据的取值小于待写入数据块的数据空间的情况下,则可以通过对待写入数据块的数据空间和页头数据的取值进行求差计算,得到待写入数据块的空闲空间。
上述实施方式中,可以通过页头数据来标识待写入数据块内已写入的数据,从而可以准确的确定出待写入数据块内的有效数据,此时,就可以在根据页头数据确定出数据块内的有效数据之后,不仅可以对待写入数据块的写入内容进行指导,还能指导解密数据块之后,所加载的数据。
S204、若基于待写入数据块的数据空间与页头数据,确定出待写入数据块不存在空闲空间,则确定待写入数据块是否带有目标标识。
其中,目标标识表征待写入数据块内的数据与磁盘中的数据不相同。例如,该目标标识可以为标脏标识。
S205、若确定出待写入数据块带有目标标识,则对待写入数据块进行刷盘处理;否则,清空待写入数据块中的数据。
一个示例中,在确定出待写入数据块带有目标标识的情况下,则表征待写入数据块内的数据与磁盘中的数据不相同,此时,就需要对待写入数据块进行刷盘处理,以使待写入数据块内的数据保存至磁盘中。
一个示例中,在对待写入数据块进行刷盘处理之后,就可以清空该待写入数据块的数据内容,此时,可以确定待写入数据块存在空闲空间。
一个示例中,在确定出待写入数据块不带有目标标识的情况下,则表征待写入数据块内的数据与磁盘中的数据相同,此时,就可以直接清空待写入数据块内的数据内容,得到具有空闲空间的待写入数据块,以便于写入待写数据。
一个示例中,在清空待写入数据块内的数据内容时,可以先推进该待写入数据块对应的基地址,然后,清空该待写入数据块内的数据内容,得到具有空闲空间的待写入数据块。
上述实施方式中,可以在确定出获取到的待写入数据块不存在空闲空间的情况下,则可以在确定出待写入数据块内的数据内容已经存储在磁盘之后,清空该待写入数据块的数据内容,以得到具有空闲空间的待写入数据块,以便于写入待写数据,从而可以实现数据块的重复利用,节省了内存资源。
S206、将空闲空间,与数据写入指令中所包括的待写数据,进行比较,得到数据比较结果。
其中,数据比较结果用于表征待写入数据块能否写入全部的待写数据。
一个示例中,在空闲空间小于待写数据对应的数据长度的情况下,则可以确定数据比较结果表征待写入数据块不能写入全部的待写数据。
此时,可以根据空闲空间,写入空闲空间大小的待写数据。之后,可以对该待写入数据块进行标脏处理,使该待写入数据块带有目标标识。之后,可以先对待写入数据块进行刷盘处理,以把写入的数据先保存至磁盘的临时文件中,之后,再清空该待写入数据块,再写入剩余的待写数据。
一个示例中,在空闲空间大于或者等于待写数据对应的数据长度的情况下,则可以确定数据比较结果表征待写入数据块能写入全部的待写数据。此时,可以执行下面S207所描述的步骤。
S207、若基于数据比较结果,确定出待写入数据块能写入全部的待写数据,则将待写数据写入待写入数据块。
一个示例中,在确定出空闲空间大于待写数据对应的数据长度的情况下,则可以执行下面S208所描述的步骤。
S208、对待写入数据块进行数据对齐处理,得到对齐后的目标数据块。
其中,对齐后的目标数据块表征包含预设长度数据的数据块。
一个示例中,对待写入数据块进行数据对齐处理,得到对齐后的目标数据块,具体可以描述为如下过程。
若确定出待写入数据块在写入待写数据之后,仍存在剩余空间,则对剩余空间进行补零处理,得到对齐后的目标数据块。
这种实施方式,可以通过对剩余空间进行补零的方式,来保证存储之前的数据块内所包括数据的数据长度,从而能够实现数据加密和解密处理。
一个示例中,在确定出空闲空间等于待写数据对应的数据长度的情况下,则在将待写数据写入待写入数据块之后,所得到的数据块,即为对齐后的目标数据块,此时,可以直接执行下面S209所描述的步骤。
S209、基于加密密钥,对对齐后的目标数据块中的数据,进行加密处理,得到加密的数据,并将加密的数据,存储至临时文件中。
一个示例中,加密密钥可以理解为上述的基于对称加密算法所生成的对称密钥。
一个示例中,图3为本申请实施例提供的一种写入临时文件数据的流程示意图。如图3所示,在接收到数据写入指令之后,可以先获取待写入数据块。然后,判断该待写入数据块是否有空闲空间。
在确定出待写入数据块没有空闲空间的情况下,则可以判断该待写入数据块是否带有目标标识。在确定出待写入数据块带有目标标识的情况下,则可以对该待写入数据块进行刷盘处理,之后,可以释放该待写如数据块的空间,之后,就可以确定该待写入数据块的空闲空间。在确定出待写入数据块不带有目标标识的情况下,则可以对该待写入数据块进行清空处理,具体参见上述清空待写入数据块内的数据内容的过程,这里不再赘述。在清空待写入数据块之后,可以释放该待写如数据块的空间。之后,就可以确定该待写入数据块的空闲空间。
在确定出待写入数据块有空闲空间的情况下,则可以确定该待写入数据块的空闲空间,并将该空闲空间与待写数据进行比较,也即,将空闲空间与待写数据的数据长度进行比较。在确定出空闲空间小于待写数据的数据长度的情况下,则可以向空闲空间写入空闲空间大小的数据。若确定出空闲空间大于或者等于待写数据的数据长度,则可以写入全部待写数据。
在对待写入数据块写入数据之后,可以对待写入数据块进行标脏处理,也即为待写入数据块添加目标标识。同时,还可以更新需要写入的待写数据的数据长度,以及更新待写入数据块的页头数据。
在确定出需要写入的待写数据的数据长度大于0的情况下,则需要返回执行上述的判断待写入数据块是否有空闲空间的流程,以将还未写入的待写数据,写入待写入数据块中,以进行存储。
在确定出需要写入的待写数据的数据长度为0的情况下,则结束数据写入流程。
一个示例中,图4为本申请实施例提供的另一种写入临时文件数据的流程示意图。如图4所示,在检测到对临时文件数据的数据写入指令之后,可以先获取密钥,然后,向临时文件缓冲区(也即内存)中写入明文数据。接着,可以调用对称加密算法加密缓冲区数据,最后,将临时文件缓冲区数据全部刷盘,进行存储。
一个示例中,在读取临时文件中的数据时,可以从磁盘中加载数据到内存中。具体可以参见下面S210~S211所描述的步骤。
S210、响应于对临时文件的数据读取指令,从磁盘中获取待读取数据块。
其中,待读取数据块表征加密的数据块。
一个示例中,数据读取指令中包括请求读取的数据长度,此时,可以从磁盘中加载并读取该请求读取的数据长度个数据。
S211、基于解密密钥,对待读取数据块进行解密处理,得到解密后的数据块;并将解密后的数据块中的数据加载至内存中。
一个示例中,解密密钥可以理解为上述的基于对称加密算法所生成的对称密钥。
一个示例中,若确定出加载至内存中的数据不满足预设长度要求的情况下,生成并展示错误提示信息。
一个示例中,预设长度要求表征数据长度阈值,其中,该数据长度阈值与上述的预设长度相同。
这种实施方式,可以及时发现并预警系统错误,避免加载错误的数据进行处理。
一个示例中,图5为本申请实施例提供的一种加载临时文件数据的流程示意图。如图5所示,在接收到数据读取指令之后,可以获取待读取数据块。在获取待读取数据块之后,可以先判断读取的待读取数据块是否带有目标标识。
在确定出待读取数据块带有目标标识的情况下,则先对该待读取数据块进行刷盘处理,以将待读取数据块中的未存储的数据进行存储。
若确定出待读取数据块不带有目标标识,或者,已对待读取数据块进行刷盘处理,则可以判断当前已读取的数据,是否到达该待读取数据块的末尾。具体的,可以通过判断读取有效数据的指针是否位于待读取数据块的末尾来判断当前已读取的数据,是否到达该待读取数据块的末尾。
在确定出已经读取到末尾的情况下,则清空该待读取数据块中的数据,并继续加载数据。
然后,可以计算加载数据之后的待读取数据块中所包含的可读数据长度,并将该可读数据长度与请求读取的数据长度进行比较,并判断可读数据长度是否小于请求读取的数据长度(也即,图5所示的可读长度小于请求长度)。
在确定出可读数据长度小于请求读取的数据长度的情况下,则读取可读数据长度大小的数据;在确定出可读数据长度大于或者等于请求读取的数据长度的情况下,则读取请求读取的数据长度大小的数据。
在读取数据之后,可以更新请求读取的数据长度,并更新读取有效数据的指针的所在位置。之后,可以判断更新之后的请求读取的数据长度是否大于0(也即,图5所示的请求长度大于0)。在确定出更新之后的请求读取的数据长度大于0的情况下,则需要返回执行上述的判断已读取的数据是否到达该待读取数据块的末尾,以继续读取数据。在确定出更新之后的请求读取的数据长度为0的情况下,则结束数据读取流程。
一个示例中,图6为本申请实施例提供的另一种加载临时文件数据的流程示意图。如图6所示,在检测到对临时文件数据的数据读取指令之后,可以先获取密钥,然后,读取临时文件到临时文件缓冲区(也即内存)。接着,可以调用对称加密算法解密缓冲区数据,最后,读取缓冲区中解密之后的数据。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
图7为本申请实施例提供的一种应用于临时文件的数据处理装置的结构示意图,如图7所示,该应用于临时文件的数据处理装置700包括:
响应单元701,用于响应于对临时文件的数据写入指令,从临时文件中获取待写入数据块;其中,数据写入指令中包括待写数据。
确定单元702,用于确定待写入数据块的空闲空间,并将空闲空间,与数据写入指令中所包括的待写数据,进行比较,得到数据比较结果;其中,数据比较结果用于表征待写入数据块能否写入全部的待写数据。
写入单元703,用于若基于数据比较结果,确定出待写入数据块能写入全部的待写数据,则将待写数据写入待写入数据块,并对待写入数据块进行数据对齐处理,得到对齐后的目标数据块;其中,对齐后的目标数据块表征包含预设长度数据的数据块。
存储单元704,用于基于加密密钥,对对齐后的目标数据块中的数据,进行加密处理,得到加密的数据,并将加密的数据,存储至临时文件中。
图8为本申请实施例提供的另一种应用于临时文件的数据处理装置的结构示意图,如图8所示,该应用于临时文件的数据处理装置800包括:
响应单元801,用于响应于对临时文件的数据写入指令,从临时文件中获取待写入数据块;其中,数据写入指令中包括待写数据。
确定单元802,用于确定待写入数据块的空闲空间,并将空闲空间,与数据写入指令中所包括的待写数据,进行比较,得到数据比较结果;其中,数据比较结果用于表征待写入数据块能否写入全部的待写数据。
写入单元803,用于若基于数据比较结果,确定出待写入数据块能写入全部的待写数据,则将待写数据写入待写入数据块,并对待写入数据块进行数据对齐处理,得到对齐后的目标数据块;其中,对齐后的目标数据块表征包含预设长度数据的数据块。
存储单元804,用于基于加密密钥,对对齐后的目标数据块中的数据,进行加密处理,得到加密的数据,并将加密的数据,存储至临时文件中。
一个示例中,待写入数据块中包括页头数据;其中,页头数据表征待写入数据块内已写入数据的数据量;此时,确定单元802,包括:
空间确定模块8021,用于基于待写入数据块的数据空间与页头数据,确定待写入数据块的空闲空间。
一个示例中,确定单元802,包括:
空间清理模块8022,用于若基于待写入数据块的数据空间与页头数据,确定出待写入数据块不存在空闲空间,则确定待写入数据块是否带有目标标识;其中,目标标识表征待写入数据块内的数据与磁盘中的数据不相同;
若确定出待写入数据块带有目标标识,则对待写入数据块进行刷盘处理;否则,清空待写入数据块中的数据。
一个示例中,确定单元802,包括:
数据对齐模块8023,用于若确定出待写入数据块在写入待写数据之后,仍存在剩余空间,则对剩余空间进行补零处理,得到对齐后的目标数据块。
一个示例中,该装置还包括:
加载单元805,用于响应于对临时文件的数据读取指令,从磁盘中获取待读取数据块;其中,待读取数据块表征加密的数据块;
基于解密密钥,对待读取数据块进行解密处理,得到解密后的数据块;并将解密后的数据块中的数据加载至内存中。
一个示例中,该装置还包括:
报错单元806,用于若确定出加载至内存中的数据不满足预设长度要求的情况下,生成并展示错误提示信息。
一个示例中,该装置还包括:
密钥生成单元807,用于响应于数据库启动指令,生成对称密钥;并将对称密钥存储在与数据库的数据库类型相匹配的目标堆区中;其中,对称密钥用于对数据块中的数据进行加密和解密;数据库类型表征数据库所包含进程的类型。
图9为本申请实施例提供的一种计算机设备的结构示意图,如图9所示,该计算机设备900包括:存储器901,处理器902。
存储器901;用于存储处理器902中的计算机执行指令的存储器。
其中,处理器902被配置为执行如上述实施例提供的方法。
计算机设备还包括接收器903和发送器904。接收器903用于接收外部设备发送的指令和数据,发送器904用于向外部设备发送指令和数据。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机执行指令,该计算机执行指令被处理器运行时执行上述方法实施例中的应用于临时文件的数据处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本申请实施例还提供一种计算机程序产品,该计算机程序产品承载有计算机执行指令,计算机执行指令包括的指令可用于执行上述方法实施例中的应用于临时文件的数据处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
进一步需要说明的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
应该理解,上述的装置实施例仅是示意性的,本申请的装置还可通过其它的方式实现。例如,上述实施例中单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本申请各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(ResistiveRandom Access Memory)、动态随机存取存储器DRAM(Dynamic Random Access Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等。
集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种应用于临时文件的数据处理方法,其特征在于,包括:
响应于对临时文件的数据写入指令,从所述临时文件中获取待写入数据块;其中,所述数据写入指令中包括待写数据;
确定所述待写入数据块的空闲空间,并将所述空闲空间,与所述数据写入指令中所包括的待写数据,进行比较,得到数据比较结果;其中,所述数据比较结果用于表征所述待写入数据块能否写入全部的所述待写数据;
若基于所述数据比较结果,确定出所述待写入数据块能写入全部的所述待写数据,则将所述待写数据写入所述待写入数据块,并对所述待写入数据块进行数据对齐处理,得到对齐后的目标数据块;其中,所述对齐后的目标数据块表征包含预设长度数据的数据块;
基于加密密钥,对所述对齐后的目标数据块中的数据,进行加密处理,得到加密的数据,并将所述加密的数据,存储至所述临时文件中。
2.根据权利要求1所述的方法,其特征在于,所述待写入数据块中包括页头数据;其中,所述页头数据表征所述待写入数据块内已写入数据的数据量;所述确定所述待写入数据块的空闲空间,包括:
基于所述待写入数据块的数据空间与所述页头数据,确定所述待写入数据块的空闲空间。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若基于所述待写入数据块的数据空间与所述页头数据,确定出所述待写入数据块不存在空闲空间,则确定所述待写入数据块是否带有目标标识;其中,所述目标标识表征所述待写入数据块内的数据与磁盘中的数据不相同;
若确定出所述待写入数据块带有所述目标标识,则对所述待写入数据块进行刷盘处理;否则,清空所述待写入数据块中的数据。
4.根据权利要求1所述的方法,其特征在于,对所述待写入数据块进行数据对齐处理,得到对齐后的目标数据块,包括:
若确定出所述待写入数据块在写入待写数据之后,仍存在剩余空间,则对所述剩余空间进行补零处理,得到对齐后的目标数据块。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于对临时文件的数据读取指令,从磁盘中获取待读取数据块;其中,所述待读取数据块表征加密的数据块;
基于解密密钥,对所述待读取数据块进行解密处理,得到解密后的数据块;并将所述解密后的数据块中的数据加载至内存中。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若确定出加载至内存中的数据不满足预设长度要求的情况下,生成并展示错误提示信息。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
响应于数据库启动指令,生成对称密钥;并将所述对称密钥存储在与所述数据库的数据库类型相匹配的目标堆区中;其中,所述对称密钥用于对数据块中的数据进行加密和解密;所述数据库类型表征所述数据库所包含进程的类型。
8.一种应用于临时文件的数据处理装置,其特征在于,包括:
响应单元,用于响应于对临时文件的数据写入指令,从所述临时文件中获取待写入数据块;其中,所述数据写入指令中包括待写数据;
确定单元,用于确定所述待写入数据块的空闲空间,并将所述空闲空间,与所述数据写入指令中所包括的待写数据,进行比较,得到数据比较结果;其中,所述数据比较结果用于表征所述待写入数据块能否写入全部的所述待写数据;
写入单元,用于若基于所述数据比较结果,确定出所述待写入数据块能写入全部的所述待写数据,则将所述待写数据写入所述待写入数据块,并对所述待写入数据块进行数据对齐处理,得到对齐后的目标数据块;其中,所述对齐后的目标数据块表征包含预设长度数据的数据块;
存储单元,用于基于加密密钥,对所述对齐后的目标数据块中的数据,进行加密处理,得到加密的数据,并将所述加密的数据,存储至所述临时文件中。
9.一种计算机设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至7任一项所述的应用于临时文件的数据处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7任一项所述的应用于临时文件的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311847596.4A CN117762877A (zh) | 2023-12-28 | 2023-12-28 | 应用于临时文件的数据处理方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311847596.4A CN117762877A (zh) | 2023-12-28 | 2023-12-28 | 应用于临时文件的数据处理方法、装置和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117762877A true CN117762877A (zh) | 2024-03-26 |
Family
ID=90314506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311847596.4A Pending CN117762877A (zh) | 2023-12-28 | 2023-12-28 | 应用于临时文件的数据处理方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117762877A (zh) |
-
2023
- 2023-12-28 CN CN202311847596.4A patent/CN117762877A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9740639B2 (en) | Map-based rapid data encryption policy compliance | |
CN113656806B (zh) | 区块链一体机的可信启动方法及装置 | |
US8516271B2 (en) | Securing non-volatile memory regions | |
US8689279B2 (en) | Encrypted chunk-based rapid data encryption policy compliance | |
JP4941556B2 (ja) | 暗号化装置、暗号化方法および暗号化プログラム | |
US20200007320A1 (en) | Key Encryption Methods, Apparatuses, and Systems | |
US9405925B2 (en) | Content item encryption on mobile devices | |
JP2005327255A5 (zh) | ||
CN113221171A (zh) | 一种加密文件读写方法、装置、电子设备和存储介质 | |
CN110650191A (zh) | 一种分布式存储系统的数据读写方法 | |
CN109344656B (zh) | 一种数据库的数据加密/解密方法、装置和设备 | |
US8290153B2 (en) | Managing a plurality of cached keys | |
CN117762877A (zh) | 应用于临时文件的数据处理方法、装置和设备 | |
CN111984554B (zh) | 一种数据处理方法及装置 | |
US12052356B2 (en) | Method and apparatus for data storage and verification | |
US20220006617A1 (en) | Method and apparatus for data storage and verification | |
CN115022669B (zh) | 一种基于信息处理的直播系统及直播方法 | |
CN114239091B (zh) | 基于可信芯片的磁盘加密方法及系统 | |
CN111262688B (zh) | 云磁盘秘钥的更换方法及装置 | |
CN117421742A (zh) | 一种开启事务日志的加密功能的方法、装置、设备和介质 | |
CN118312488A (zh) | 一种事务日志段文件的处理方法、存储介质与设备 | |
CN118312972A (zh) | 一种事务日志段文件的加密方法、存储介质与设备 | |
CN118378240A (zh) | 一种固件安全启动方法和系统 | |
CN115412275A (zh) | 一种基于可信执行环境的隐私计算系统及方法 | |
CN118094524A (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 |