本发明涉及数据库技术,特别是涉及一种事务日志的解密方法、存储介质与设备。
背景技术:
1、在kingbasees数据库(简称kes数据库)中,事务日志其实指的是xlog日志(或称为wal日志)。为了防止从xlog日志泄漏用户信息,需要对xlog日志进行加密保护。现有的xlog日志的加密方法和解密方法是在xlog日志的写流程对xlog日志进行加密,并在xlog日志的读流程对xlog日志进行自动解密。
2、然而,现有的加密方法和解密方法中采用page页为加密粒度和解密粒度,一个page页很可能被多次加密或解密,严重耗损性能。如,一个page页没有写满就执行刷盘的操作,那么磁盘中的page页只有部分有效的日志数据,但是加密粒度现在为page页,那么每次需要对整个page页进行加密,即是对很多无效的数据执行了加密操作。当需要继续对此page页写日志时,需要先对此page页解密。在实际使用中,这种刷盘的操作会非常多,会造成非常大的性能损耗。另外,以page作为加密的粒度还需要导致在日志的读流程读取到page页后就开始解密,解密位置比较靠前,用户信息泄露的风险较高。
技术实现思路
1、本发明的一个目的是要提供一种事务日志的解密方法,选取安全性更高的解密位置对事务日志进行解密。
2、本发明一个进一步的目的是要降低性能损耗,以提高数据库的整体性能。
3、本发明另一个进一步的目的是要提高解密的准确性。
4、根据本发明的一个方面,本发明提供了一种事务日志的解密方法,其包括:
5、获取待解密的事务日志在预先的加密操作时选择的加密粒度;
6、在事务日志的读流程中,在以加密粒度解码事务日志的数据的阶段,以预设解密粒度对事务日志进行解密操作,其中,预设解密粒度与加密粒度相同。
7、可选地,待解密的事务日志包括事务日志头部和事务日志数据区,其中,事务日志数据区包括main data和/或至少一个block区,block区包含page data和/或tuple data,main data、page data和tuple data均包括至少一个data数据块;
8、加密粒度为data数据块;并且
9、以加密粒度解码事务日志的数据的流程包括:
10、根据待解密的事务日志的事务日志数据区所包括的内容,解码main data数据、page data数据和tuple data数据中的一个或多个,得到事务日志的各个data数据块。
11、可选地,以预设解密粒度对事务日志进行解密操作的流程包括:
12、对事务日志的每个data数据块进行解密。
13、可选地,不同类型的事务日志的main data所包括的data数据块不同;并且解码事务日志的main data数据的流程包括:
14、根据事务日志的类型,逐一解码出main data的各个data数据块。
15、可选地,在以加密粒度解码事务日志的数据的阶段,以预设解密粒度对事务日志进行解密操作的流程包括:
16、在解码出main data的每个data数据块之后,对该个data数据块进行解密。
17、可选地,不同类型的事务日志的page data和tuple data所包括的data数据块不同;并且解码事务日志的每个block区的page data和tuple data数据的流程包括:
18、根据事务日志的类型,逐一解码出各个block区的page data和tuple data中的各个data数据块。
19、可选地,在以加密粒度解码事务日志的数据的阶段,以预设解密粒度对事务日志进行解密操作的流程包括:
20、在解码出各个block区的page data和tuple data中的每个data数据块之后,对该个data数据块进行解密。
21、可选地,预先的加密操作包括:
22、在组装事务日志的过程中,以加密粒度对事务日志进行加密操作。
23、根据本发明的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的事务日志的解密方法。
24、根据本发明的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的事务日志的解密方法。
25、本发明的事务日志的解密方法通过获取待解密的事务日志在预先的加密操作时选择的加密粒度,便于更准确地选取合适的预设解密粒度和解密位置。并且预设解密粒度与加密粒度相同,实现了准确地对待解密的事务日志进行解密。并且本发明的事务日志的解密方法在事务日志的读流程中,在以加密粒度解码事务日志的数据的阶段,以预设解密粒度对事务日志进行解密操作,实现了在事务日志的读流程中选择合适的解密位置,减小了解密后用户信息泄露的风险,提高了安全性。
26、进一步地,在本发明的事务日志的解密方法中,待解密的事务日志包括事务日志头部和事务日志数据区,其中,事务日志数据区包括main data和/或至少一个block区,每个block区包含page data和/或tuple data,并且main data、page data和tuple data均包括至少一个data数据块。在预先的事务日志的加密操作时,选择data数据块作为加密粒度。在加密粒度为data数据块的基础上,选择data数据块作为解密粒度,并且选择在根据所述待解密的事务日志的所述事务日志数据区所包括的内容,解码main data数据、page data数据和tuple data数据中的一个或多个,得到事务日志的各个data数据块的阶段,对事务日志进行解密操作。本发明的事务日志的解密方法以data数据块为预设解密粒度,并以解码得到事务日志中的每个data数据块的阶段为解密位置,实现了可以针对性地仅对需要解密的数据进行解密,避免了对其他无效数据进行的解密操作,减少性能损耗,有效地提升了数据库的整体性能。
27、更进一步地,本发明的事务日志的解密方法通过在解码得到事务日志的中的每个data数据块的阶段,对事务日志中的每个data数据块进行解密,保证了对事务日志中的每个需要解密的数据块均进行解密操作,提高了解密的准确性,从而进一步提高了用户信息的安全性。
28、根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
1.一种事务日志的解密方法,包括:
2.根据权利要求1所述的事务日志的解密方法,其中,所述待解密的事务日志包括事务日志头部和事务日志数据区,其中,所述事务日志数据区包括main data和/或至少一个block区,所述block区包含page data和/或tupledata,所述main data、所述page data和所述tupledata均包括至少一个所述data数据块;
3.根据权利要求2所述的事务日志的解密方法,其中,所述以预设解密粒度对所述事务日志进行解密操作的流程包括:
4.根据权利要求2所述的事务日志的解密方法,其中,不同类型的所述事务日志的所述main data所包括的data数据块不同;并且所述解码所述事务日志的所述main data数据的流程包括:
5.根据权利要求4所述的事务日志的解密方法,其中,所述在以所述加密粒度解码所述事务日志的数据的阶段,以预设解密粒度对所述事务日志进行解密操作的流程包括:
6.根据权利要求2所述的事务日志的解密方法,其中,不同类型的所述事务日志的所述page data和所述tupledata所包括的data数据块不同;并且所述解码所述事务日志的每个所述block区的所述page data和所述tupledata数据的流程包括:
7.根据权利要求6所述的事务日志的解密方法,其中,所述在以所述加密粒度解码所述事务日志的数据的阶段,以预设解密粒度对所述事务日志进行解密操作的流程包括:
8.根据权利要求1所述的事务日志的解密方法,其中,所述预先的加密操作包括:
9.一种机器可读存储介质,其上存储有机器可执行程序,所述机器可执行程序被处理器执行时实现根据权利要求1至8任一项所述的事务日志的解密方法。
10.一种计算机设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的机器可执行程序,并且所述处理器执行所述机器可执行程序时实现根据权利要求1至8任一项所述的事务日志的解密方法。