基于双列处理的列加解密方法和装置转让专利

申请号 : CN202211299010.0

文献号 : CN115374464B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张黎刘维炜余杰李蓓蓓

申请人 : 闪捷信息科技有限公司

摘要 :

本发明提供一种基于双列处理的列加解密方法和装置,其中方法包括:获取当前应用环境下的数据库描述信息,并基于数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置;若当前应用环境下使用的数据库支持移动数据表中列的位置,且当前的加解密标记为未加密,则在目标数据表中紧邻待加密列之后的位置处插入加密辅助列;读取待加密列中的待加密数据并进行加密,得到待加密列的已加密数据后,将待加密列的已加密数据更新至加密辅助列中;删除待加密列,并将加密辅助列的列名改为待加密列的列名;若当前的加解密标记为已加密,解密方式类似上述加密方式。本发明提高了敏感列加解密过程中数据库的安全性。

权利要求 :

1.一种基于双列处理的列加解密方法,其特征在于,包括:

获取当前应用环境下的数据库描述信息,并基于所述数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置;

若当前应用环境下使用的数据库支持移动数据表中列的位置,确定当前的加解密标记;

若当前的加解密标记为未加密,则在目标数据表中紧邻待加密列之后的位置处插入加密辅助列;读取所述待加密列中的待加密数据并进行加密,得到所述待加密列的已加密数据后,将所述待加密列的已加密数据更新至所述加密辅助列中;删除所述待加密列,并将所述加密辅助列的列名改为所述待加密列的列名;

若当前的加解密标记为已加密,则在目标数据表中紧邻待解密列之后的位置处插入解密辅助列;读取所述待解密列中的待解密数据并进行解密,得到所述待解密列的已解密数据后,将所述待解密列的已解密数据更新至所述解密辅助列中;删除所述待解密列,并将所述解密辅助列的列名改为所述待解密列的列名;

所述读取所述待加密列中的待加密数据并进行加密,得到所述待加密列的已加密数据后,将所述待加密列的已加密数据更新至所述加密辅助列中,具体包括:基于select语句读取所述待加密列中的待加密数据并将所述待加密数据按所述目标数据表的主键顺序排列;

基于所述待加密列对应的加密算法和加密密钥对按所述目标数据表的主键顺序排列的待加密数据进行加密处理,得到所述待加密列的已加密数据;其中,所述已加密数据同样是按所述目标数据表的主键顺序排列的;

基于update语句将所述已加密数据按所述目标数据表的主键更新至所述加密辅助列中,使得所述加密辅助列中的数据顺序与所述待加密数据中的数据顺序保持一致。

2.根据权利要求1所述的基于双列处理的列加解密方法,其特征在于,所述基于update语句将所述已加密数据按所述目标数据表的主键更新至所述加密辅助列中,具体包括:基于所述加密辅助列的字段长度、当前应用环境下使用的数据库支持的SQL语句传输的最大数据包容量以及缓冲区大小,确定单次更新的最大条目数;

基于所述单次更新的最大条目数,将所述已加密数据按所述目标数据表的主键批量更新至所述加密辅助列中;其中,单次更新至所述加密辅助列中的已加密数据的数量小于或等于所述单次更新的最大条目数。

3.根据权利要求1所述的基于双列处理的列加解密方法,其特征在于,所述读取所述待解密列中的待解密数据并进行解密,得到所述待解密列的已解密数据后,将所述待解密列的已解密数据更新至所述解密辅助列中,具体包括:基于select语句读取所述待解密列中的待解密数据并将所述待解密数据按所述目标数据表的主键顺序排列;

基于所述待解密列对应的解密算法和解密密钥对按所述目标数据表的主键顺序排列的待解密数据进行解密处理,得到所述待解密列的已解密数据;其中,所述已解密数据同样是按所述目标数据表的主键顺序排列的;

基于update语句将所述已解密数据按所述目标数据表的主键更新至所述解密辅助列中,使得所述解密辅助列中的数据顺序与所述待解密数据中的数据顺序保持一致。

4.根据权利要求3所述的基于双列处理的列加解密方法,其特征在于,所述基于update语句将所述已解密数据按所述目标数据表的主键更新至所述解密辅助列中,具体包括:基于所述解密辅助列的字段长度、当前应用环境下使用的数据库支持的SQL语句传输的最大数据包容量以及缓冲区大小,确定单次更新的最大条目数;

基于所述单次更新的最大条目数,将所述已解密数据按所述目标数据表的主键批量更新至所述解密辅助列中;其中,单次更新至所述解密辅助列中的已解密数据的数量小于或等于所述单次更新的最大条目数。

5.根据权利要求2或4所述的基于双列处理的列加解密方法,其特征在于,所述加密辅助列的字段长度是基于所述待加密列对应的加密算法以及所述待加密列的字段长度确定的;所述待加密列对应的加密算法是基于所述待加密列的字段类型确定的;所述解密辅助列的字段长度是基于所述待解密列对应的解密算法以及所述待解密列的字段长度确定的;

所述待解密列对应的解密算法是基于所述待解密列的字段类型确定的。

6.根据权利要求1所述的基于双列处理的列加解密方法,其特征在于,所述基于所述数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置,之后还包括:若当前应用环境下使用的数据库不支持移动数据表中列的位置,确定当前的加解密标记;

若当前的加解密标记为未加密,则创建一张加密辅助表,所述加密辅助表中包含与目标数据表中待加密列的字段类型和字段长度相同的加密复制列以及与所述目标数据表的主键列的字段类型和字段长度相同的标识列;将所述待加密列中的待加密数据更新至所述加密复制列中后,读取所述加密复制列中的待加密数据并进行加密,得到所述加密复制列的已加密数据;将所述加密复制列的已加密数据更新至所述待加密列中,并删除所述加密辅助表;

若当前的加解密标记为已加密,则创建一张解密辅助表,所述解密辅助表中包含与目标数据表中待解密列的字段类型和字段长度相同的解密复制列以及与所述目标数据表的主键列的字段类型和字段长度相同的标识列;将所述待解密列中的待解密数据更新至所述解密复制列中后,读取所述解密复制列中的待解密数据并进行解密,得到所述解密复制列的已解密数据;将所述解密复制列的已解密数据更新至所述待解密列中,并删除所述解密辅助表。

7.一种基于双列处理的列加解密装置,其特征在于,包括:

数据库功能识别单元,用于获取当前应用环境下的数据库描述信息,并基于所述数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置;

加解密标记确定单元,用于若当前应用环境下使用的数据库支持移动数据表中列的位置,确定当前的加解密标记;

列移动加密单元,用于若当前的加解密标记为未加密,则在目标数据表中紧邻待加密列之后的位置处插入加密辅助列;读取所述待加密列中的待加密数据并进行加密,得到所述待加密列的已加密数据后,将所述待加密列的已加密数据更新至所述加密辅助列中;删除所述待加密列,并将所述加密辅助列的列名改为所述待加密列的列名;

列移动解密单元,用于若当前的加解密标记为已加密,则在目标数据表中紧邻待解密列之后的位置处插入解密辅助列;读取所述待解密列中的待解密数据并进行解密,得到所述待解密列的已解密数据后,将所述待解密列的已解密数据更新至所述解密辅助列中;删除所述待解密列,并将所述解密辅助列的列名改为所述待解密列的列名;

所述读取所述待加密列中的待加密数据并进行加密,得到所述待加密列的已加密数据后,将所述待加密列的已加密数据更新至所述加密辅助列中,具体包括:基于select语句读取所述待加密列中的待加密数据并将所述待加密数据按所述目标数据表的主键顺序排列;

基于所述待加密列对应的加密算法和加密密钥对按所述目标数据表的主键顺序排列的待加密数据进行加密处理,得到所述待加密列的已加密数据;其中,所述已加密数据同样是按所述目标数据表的主键顺序排列的;

基于update语句将所述已加密数据按所述目标数据表的主键更新至所述加密辅助列中,使得所述加密辅助列中的数据顺序与所述待加密数据中的数据顺序保持一致。

8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述基于双列处理的列加解密方法。

9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述基于双列处理的列加解密方法。

说明书 :

基于双列处理的列加解密方法和装置

技术领域

[0001] 本发明涉及数据库安全技术领域,尤其涉及一种基于双列处理的列加解密方法和装置。

背景技术

[0002] 数据安全日益重要,对数据库中的数据进行加密的必要性越来越高。其中,数据库加密,也就是对数据库中各个数据表的敏感列进行加密是非常重要的安全手段。然而,随着数据表中数据的大幅度膨胀,如何高效且安全地对敏感列中海量的数据进行加密和解密,同时不影响整个数据库的使用安全,是一个亟待解决的难题。
[0003] 目前在对数据表的敏感列进行加密时,通常采用的是双表策略。即,在对数据表的敏感列进行加密时,通过新增一张与目标数据表A(即包含敏感列的数据表)的表结构一致的辅助表B,将目标数据表A中非敏感列的所有数据拷贝到辅助表B中的对应列中,将目标数据表A中敏感列的数据加密后拷贝到辅助表B中的对应列中,完成之后删除目标数据表A,并将辅助表B的表名修改为目标数据表A的表名。
[0004] 然而,上述双表策略中通过新增一张表以替换原表的方式实现加密,本质上用户的原表已丢失,只是将其中的数据以密文的形式存在于同名的新表中。一方面,此方案需要将原表中所有的数据拷贝到新表中,在数据量很大时该方案的效率会较低。更重要的是,删除原表会后,原表上携带的关联关系(例如在原表上建立的外键、引用、视图、触发器等)丢失,导致数据库的整体环境被破坏。即使在删除原表后在新表上重建上述关联关系,在表结构复杂、关联关系较多时,重建上述关联关系需要额外耗费更多的时间成本且存在遗漏风险。此外,在原表的数据量较大的情况下,在删除原表的过程中一旦出错导致原表删除不成功,原表中部分数据被删除而部分数据被保留时,极易导致整个数据库崩溃,影响用户的生产环境安全。因此,上述双表方案存在加密效率较低且安全性不足的问题。

发明内容

[0005] 本发明提供一种基于双列处理的列加解密方法和装置,用以解决现有技术中双表方案存在加密效率较低且安全性不足的缺陷。
[0006] 本发明提供一种基于双列处理的列加解密方法,包括:
[0007] 获取当前应用环境下的数据库描述信息,并基于所述数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置;
[0008] 若当前应用环境下使用的数据库支持移动数据表中列的位置,确定当前的加解密标记;
[0009] 若当前的加解密标记为未加密,则在目标数据表中紧邻待加密列之后的位置处插入加密辅助列;读取所述待加密列中的待加密数据并进行加密,得到所述待加密列的已加密数据后,将所述待加密列的已加密数据更新至所述加密辅助列中;删除所述待加密列,并将所述加密辅助列的列名改为所述待加密列的列名;
[0010] 若当前的加解密标记为已加密,则在目标数据表中紧邻待解密列之后的位置处插入解密辅助列;读取所述待解密列中的待解密数据并进行解密,得到所述待解密列的已解密数据后,将所述待解密列的已解密数据更新至所述解密辅助列中;删除所述待解密列,并将所述解密辅助列的列名改为所述待解密列的列名。
[0011] 根据本发明提供的一种基于双列处理的列加解密方法,所述读取所述待加密列中的待加密数据并进行加密,得到所述待加密列的已加密数据后,将所述待加密列的已加密数据更新至所述加密辅助列中,具体包括:
[0012] 基于select语句读取所述待加密列中的待加密数据并将所述待加密数据按所述目标数据表的主键顺序排列;
[0013] 基于所述待加密列对应的加密算法和加密密钥对按所述目标数据表的主键顺序排列的待加密数据进行加密处理,得到所述待加密列的已加密数据;其中,所述已加密数据同样是按所述目标数据表的主键顺序排列的;
[0014] 基于update语句将所述已加密数据按所述目标数据表的主键更新至所述加密辅助列中,使得所述加密辅助列中的数据顺序与所述待加密数据中的数据顺序保持一致。
[0015] 根据本发明提供的一种基于双列处理的列加解密方法,所述基于update语句将所述已加密数据按所述目标数据表的主键更新至所述加密辅助列中,具体包括:
[0016] 基于所述加密辅助列的字段长度、当前应用环境下使用的数据库支持的SQL语句传输的最大数据包容量以及缓冲区大小,确定单次更新的最大条目数;
[0017] 基于所述单次更新的最大条目数,将所述已加密数据按所述目标数据表的主键批量更新至所述加密辅助列中;其中,单次更新至所述加密辅助列中的已加密数据的数量小于或等于所述单次更新的最大条目数。
[0018] 根据本发明提供的一种基于双列处理的列加解密方法,所述读取所述待解密列中的待解密数据并进行解密,得到所述待解密列的已解密数据后,将所述待解密列的已解密数据更新至所述解密辅助列中,具体包括:
[0019] 基于select语句读取所述待解密列中的待解密数据并将所述待解密数据按所述目标数据表的主键顺序排列;
[0020] 基于所述待解密列对应的解密算法和解密密钥对按所述目标数据表的主键顺序排列的待解密数据进行解密处理,得到所述待解密列的已解密数据;其中,所述已解密数据同样是按所述目标数据表的主键顺序排列的;
[0021] 基于update语句将所述已解密数据按所述目标数据表的主键更新至所述解密辅助列中,使得所述解密辅助列中的数据顺序与所述待解密数据中的数据顺序保持一致。
[0022] 根据本发明提供的一种基于双列处理的列加解密方法,所述基于update语句将所述已解密数据按所述目标数据表的主键更新至所述解密辅助列中,具体包括:
[0023] 基于所述解密辅助列的字段长度、当前应用环境下使用的数据库支持的SQL语句传输的最大数据包容量以及缓冲区大小,确定单次更新的最大条目数;
[0024] 基于所述单次更新的最大条目数,将所述已解密数据按所述目标数据表的主键批量更新至所述解密辅助列中;其中,单次更新至所述解密辅助列中的已解密数据的数量小于或等于所述单次更新的最大条目数。
[0025] 根据本发明提供的一种基于双列处理的列加解密方法,所述加密辅助列的字段长度是基于所述待加密列对应的加密算法以及所述待加密列的字段长度确定的;所述待加密列对应的加密算法是基于所述待加密列的字段类型确定的;所述解密辅助列的字段长度是基于所述待解密列对应的解密算法以及所述待解密列的字段长度确定的;所述待解密列对应的解密算法是基于所述待解密列的字段类型确定的。
[0026] 根据本发明提供的一种基于双列处理的列加解密方法,所述基于所述数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置,之后还包括:
[0027] 若当前应用环境下使用的数据库不支持移动数据表中列的位置,确定当前的加解密标记;
[0028] 若当前的加解密标记为未加密,则创建一张加密辅助表,所述加密辅助表中包含与目标数据表中待加密列的字段类型和字段长度相同的加密复制列以及与所述目标数据表的主键列的字段类型和字段长度相同的标识列;将所述待加密列中的待加密数据更新至所述加密复制列中后,读取所述加密复制列中的待加密数据并进行加密,得到所述加密复制列的已加密数据;将所述加密复制列的已加密数据更新至所述待加密列中,并删除所述加密辅助表;
[0029] 若当前的加解密标记为已加密,则创建一张解密辅助表,所述解密辅助表中包含与目标数据表中待解密列的字段类型和字段长度相同的解密复制列以及与所述目标数据表的主键列的字段类型和字段长度相同的标识列;将所述待解密列中的待解密数据更新至所述解密复制列中后,读取所述解密复制列中的待解密数据并进行解密,得到所述解密复制列的已解密数据;将所述解密复制列的已解密数据更新至所述待解密列中,并删除所述解密辅助表。
[0030] 本发明还提供一种基于双列处理的列加解密装置,包括:
[0031] 数据库功能识别单元,用于获取当前应用环境下的数据库描述信息,并基于所述数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置;
[0032] 加解密标记确定单元,用于若当前应用环境下使用的数据库支持移动数据表中列的位置,确定当前的加解密标记;
[0033] 列移动加密单元,用于若当前的加解密标记为未加密,则在目标数据表中紧邻待加密列之后的位置处插入加密辅助列;读取所述待加密列中的待加密数据并进行加密,得到所述待加密列的已加密数据后,将所述待加密列的已加密数据更新至所述加密辅助列中;删除所述待加密列,并将所述加密辅助列的列名改为所述待加密列的列名;
[0034] 列移动解密单元,用于若当前的加解密标记为已加密,则在目标数据表中紧邻待解密列之后的位置处插入解密辅助列;读取所述待解密列中的待解密数据并进行解密,得到所述待解密列的已解密数据后,将所述待解密列的已解密数据更新至所述解密辅助列中;删除所述待解密列,并将所述解密辅助列的列名改为所述待解密列的列名。
[0035] 本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于双列处理的列加解密方法。
[0036] 本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于双列处理的列加解密方法。
[0037] 本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于双列处理的列加解密方法。
[0038] 本发明提供的基于双列处理的列加解密方法和装置,通过判断当前应用环境下使用的数据库是否支持移动数据表中列的位置,在当前应用环境下使用的数据库支持移动数据表中列的位置时,通过在目标数据表中紧邻待加密列之后的位置处插入加密辅助列、读取待加密数据、数据加密、已加密数据写回至加密辅助列、删除原待加密列以及加密辅助列改名等操作,实现敏感列的加密,或是通过在目标数据表中紧邻待解密列之后的位置处插入解密辅助列、读取待解密数据、数据解密、已解密数据写回至解密辅助列、删除原待解密列以及解密辅助列改名等操作,实现敏感列的解密,一方面不会丢失目标数据表上的任何关联关系,也无需进行关联关系重建,故不会影响整个数据库环境;另一方面,由于上述加解密流程并不需要删除整个目标数据表,即使在删除待加密列或待解密列时出现删除故障,也无需担心脏数据的问题,因此不会存在数据库崩溃的问题,提高了敏感列加密过程中数据库的安全性。此外,通过在目标数据表中紧邻待加密列之后的位置处插入加密辅助列,或是在目标数据表中紧邻待解密列之后的位置处插入解密辅助列,在实现敏感列加密的同时保证了目标数据表中列顺序维持不变,可以维护用户生产环境的安全。

附图说明

[0039] 为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040] 图1是本发明提供的基于双列处理的列加解密方法的流程示意图之一;
[0041] 图2是本发明提供的加密辅助列更新方法的流程示意图;
[0042] 图3是本发明提供的基于双列处理的列加解密方法的流程示意图之二;
[0043] 图4是本发明提供的基于双列处理的列加解密装置的结构示意图;
[0044] 图5是本发明提供的电子设备的结构示意图。

具体实施方式

[0045] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046] 图1是本发明提供的基于双列处理的列加解密方法的流程示意图,如图1所示,该方法包括:
[0047] 步骤110,获取当前应用环境下的数据库描述信息,并基于所述数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置;
[0048] 步骤120,若当前应用环境下使用的数据库支持移动数据表中列的位置,确定当前的加解密标记;
[0049] 步骤130,若当前的加解密标记为未加密,则在目标数据表中紧邻待加密列之后的位置处插入加密辅助列;读取所述待加密列中的待加密数据并进行加密,得到所述待加密列的已加密数据后,将所述待加密列的已加密数据更新至所述加密辅助列中;删除所述待加密列,并将所述加密辅助列的列名改为所述待加密列的列名;
[0050] 步骤140,若当前的加解密标记为已加密,则在目标数据表中紧邻待解密列之后的位置处插入解密辅助列;读取所述待解密列中的待解密数据并进行解密,得到所述待解密列的已解密数据后,将所述待解密列的已解密数据更新至所述解密辅助列中;删除所述待解密列,并将所述解密辅助列的列名改为所述待解密列的列名。
[0051] 具体地,目前的数据库产品多种多样,例如MYSQL、Oracle等,而不同数据库产品所提供的数据库功能之间有所差异,在对不同数据库产品的数据表进行加解密操作时,需要进行差异化处理。因此,在实际进行列加解密之前,需要首先获取当前应用环境下的数据库描述信息,确定当前应用环境所采用的数据库类型,从而对该数据库类型进行针对性处理。具体而言,可以根据数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置,例如MYSQL及其系列产品即支持移动数据表中列的位置,而Oracle则不支持移动数据表中列的位置。其中,移动数据表中列的位置是指在数据表已创建且其中已存储有数据的前提下,新增列时可以指定该新增列在数据表中的位置。例如,若原始表A的表结构为{col1,col2,…,colm},如果数据库支持移动数据表中列的位置,则新增列时可以将新增列插入到指定的任意位置,例如可以新增列colp,且指定新增列colp的位置在col2之后,即{col1,col2,colp,…,colm}。
[0052] 若当前应用环境下使用的数据库支持移动数据表中列的位置,则确定目标数据表当前的加解密标记。其中,若目标数据表当前的加解密标记为未加密,则需要对目标数据表中的敏感列(此时为待加密列)进行加密操作;若目标数据表当前的加解密标记为已加密,则需要对目标数据表中的敏感列(此时为待解密列)进行解密操作。此处敏感列可以预先被标记出来,以帮助加解密程序识别出目标数据表中的待加密列或待解密列。需要说明的是,敏感列上不存在关联关系,即敏感列不为主键、外键且未被引用。
[0053] 若当前的加解密标记为未加密,则在目标数据表中紧邻待加密列之后的位置处插入加密辅助列。由于当前应用环境所使用的的数据库支持移动数据表中列的位置,因此可以在紧邻待加密列之后的位置处插入新列。例如,当目标数据表的表结构为{col1,col2,…,colm}且待加密列为col2时,可以在col2后面插入新的加密辅助列colp,即目标数据表的表结构变为{col1,col2,colp,…,colm}。随后,读取待加密列中的各个待加密数据(其中一行数据中对应待加密列处的列数据即为一个待加密数据)到缓存中,并利用相应的加密算法对该待加密列中的各个待加密数据一一进行加密处理,得到待加密列的已加密数据。其中,具体的加密算法可以根据待加密列中待加密数据的数据类型(即待加密列的字段类型,如整数型、字符型等)进行选择,本发明实施例对此不作具体限定。
[0054] 再将待加密列的已加密数据更新至目标数据表的加密辅助列中,使得加密辅助列中的数据与待加密列中的数据是一一对应的,区别仅在于前者是密文数据,后者是明文数据。将全部已加密数据均更新到加密辅助列中之后,删除目标数据表中的待加密列,再将上述加密辅助列的列名改为待加密列的列名,使得此时的目标数据表的表结构还原为初始状态。例如,上述流程中表结构的变化可以简单表示为:{col1,col2,…,colm} {col1,col2,colp,…,colm} {col1,colp,…,colm} {col1,col2,…,colm}。
[0055] 其中,将全部已加密数据均更新到加密辅助列中之后,再删除目标数据表中的待加密列并将上述加密辅助列的列名改为待加密列的列名,相对于直接将已加密数据覆盖到待加密列中,其安全性更高。原因在于,若直接将已加密数据覆盖到待加密列中,一旦该过程中出现故障,可能会造成该列中明文密文混杂,难以分辨出更新成功的数据和更新失败的数据,易造成数据错误;而将全部已加密数据均更新到加密辅助列中之后,再删除目标数据表中的待加密列,即使在加密辅助列的更新过程中出现故障,由于加密辅助列中更新前的数据为NULL或是默认值,因此能够快速定位更新成功的数据和更新失败的数据,以便重新对更新失败的数据进行更新,数据安全性更高。
[0056] 此处,由于数据库支持移动数据表中列的位置,因此通过在目标数据表中紧邻待加密列之后的位置处新增加密辅助列,然后通过上述读取待加密数据、数据加密、已加密数据写回、删除原待加密列以及加密辅助列改名等操作,实现了目标数据表中敏感列的加密和目标数据表表结构的维持,且整个加密过程中目标数据表未丢失,在完全将待加密列中待加密数据对应的密文数据写回到目标数据表中之前,待加密列也未变动,因此该加密方式不会丢失目标数据表上的任何关联关系,自然也无需进行关联关系重建,故不会影响整个数据库环境。此外,由于上述加密流程并不需要删除整个目标数据表,即使在删除待加密列时出现删除故障,也无需担心脏数据的问题(因为所有数据都已经保存在了加密辅助列中),再次删除待加密列即可,因此也不会存在数据库崩溃的问题,提高了敏感列加密过程中数据库的安全性。
[0057] 需要说明的是,本发明实施例之所以要确定数据库是否支持移动列的位置,且数据库支持移动列的位置时,在目标数据表中紧邻待加密列之后的位置处新增加密辅助列,而非在目标数据表最末位新增加密辅助列,原因在于上述敏感列的加密不应当影响用户的生产环境。
[0058] 具体而言,在用户的生产环境中,可能存在有select * from table的语句用于查询数据表中的数据,或是利用insert into table values(xxx,xxx,xxx)进行数据插入操作等情形,上述语句均要求数据表中列的位置是固定不变的。例如,对于select * from table,若改变了数据表中列的位置,则该查询语句查询得到的结果会发生变化,从而可能导致生产环境出错;又例如,对于insert into table values(xxx,xxx,xxx),其中插入值的顺序与原始数据表中列的顺序是一致的,一旦改变了数据表中列的位置,会直接导致插入数据出错或是插入失败。可见,对于敏感列的加密必须保证不改变目标数据表中列的位置。本发明实施例通过在目标数据表中紧邻待加密列之后的位置处新增加密辅助列,然后通过上述读取待加密数据、数据加密、已加密数据写回、删除原待加密列以及加密辅助列改名,在实现敏感列加密的同时保证了目标数据表中列顺序维持不变,可以有效避免上述问题,维护用户生产环境的安全。
[0059] 若当前的加解密标记为已加密,则可以对目标数据表中的敏感列(此时为待解密列)进行解密处理,而解密处理与加密处理是一致的,同样是在目标数据表中紧邻待解密列之后的位置处插入解密辅助列,读取待解密列中的待解密数据并进行解密,得到待解密列的已解密数据后,将待解密列的已解密数据更新至解密辅助列中,删除待解密列,并将解密辅助列的列名改为待解密列的列名,具体细节在此不再赘述。
[0060] 本发明实施例提供的方法,通过判断当前应用环境下使用的数据库是否支持移动数据表中列的位置,在当前应用环境下使用的数据库支持移动数据表中列的位置时,通过在目标数据表中紧邻待加密列之后的位置处插入加密辅助列、读取待加密数据、数据加密、已加密数据写回至加密辅助列、删除原待加密列以及加密辅助列改名等操作,实现敏感列的加密,或是通过在目标数据表中紧邻待解密列之后的位置处插入解密辅助列、读取待解密数据、数据解密、已解密数据写回至解密辅助列、删除原待解密列以及解密辅助列改名等操作,实现敏感列的解密,一方面不会丢失目标数据表上的任何关联关系,也无需进行关联关系重建,故不会影响整个数据库环境;另一方面,由于上述加解密流程并不需要删除整个目标数据表,即使在删除待加密列或待解密列时出现删除故障,也无需担心脏数据的问题,因此不会存在数据库崩溃的问题,提高了敏感列加密过程中数据库的安全性。此外,通过在目标数据表中紧邻待加密列之后的位置处插入加密辅助列,或是在目标数据表中紧邻待解密列之后的位置处插入解密辅助列,在实现敏感列加密的同时保证了目标数据表中列顺序维持不变,可以维护用户生产环境的安全。
[0061] 基于上述实施例,如图2所示,所述读取所述待加密列中的待加密数据并进行加密,得到所述待加密列的已加密数据后,将所述待加密列的已加密数据更新至所述加密辅助列中,具体包括:
[0062] 步骤210,基于select语句读取所述待加密列中的待加密数据并将所述待加密数据按所述目标数据表的主键顺序排列;
[0063] 步骤220,基于所述待加密列对应的加密算法和加密密钥对按所述目标数据表的主键顺序排列的待加密数据进行加密处理,得到所述待加密列的已加密数据;其中,所述已加密数据同样是按所述目标数据表的主键顺序排列的;
[0064] 步骤230,基于update语句将所述已加密数据按所述目标数据表的主键更新至所述加密辅助列中,使得所述加密辅助列中的数据顺序与所述待加密数据中的数据顺序保持一致。
[0065] 具体地,可以基于select语句读取待加密列中的各个待加密数据并将上述各个待加密数据按目标数据表的主键顺序排列。其中,可以按照各个待加密数据所在行的主键值按由小到大的顺序对待加密数据进行排序或是由大到小的顺序对待加密数据进行排序,得到有序排列的待加密数据。随后,基于待加密列对应的加密算法和加密密钥对上述按目标数据表的主键顺序排列的待加密数据进行加密处理,得到待加密列的已加密数据。其中,也要保证各个已加密数据同样是按目标数据表的主键顺序排列的,以加快数据插入效率。
[0066] 加密操作完成后,再基于update语句将已加密数据按目标数据表的主键更新至加密辅助列中,使得加密辅助列中的数据顺序与待加密数据中的数据顺序保持一致,以保证数据表中数据的正确性。其中,由于目标数据表的主键上建立有索引,因此当各个已加密数据是按目标数据表的主键顺序排列的时候,下一次插入的数据对应的索引均在当前插入的数据对应的索引之后,索引的定位效率很高且对索引的调整较小,能够提升数据插入性能,加快整个加密过程的效率。因此,在将已加密数据按目标数据表的主键更新至加密辅助列中时,可以按各个已加密数据对应的主键值由大到小的顺序或由小到大的顺序更新到加密辅助列中相应主键值对应的位置处。
[0067] 基于上述任一实施例,所述基于update语句将所述已加密数据按所述目标数据表的主键更新至所述加密辅助列中,具体包括:
[0068] 基于所述加密辅助列的字段长度、当前应用环境下使用的数据库支持的SQL语句传输的最大数据包容量以及缓冲区大小,确定单次更新的最大条目数;
[0069] 基于所述单次更新的最大条目数,将所述已加密数据按所述目标数据表的主键批量更新至所述加密辅助列中;其中,单次更新至所述加密辅助列中的已加密数据的数量小于或等于所述单次更新的最大条目数。
[0070] 具体地,当已加密数据的数据量十分庞大时,为了提升加密辅助列数据更新的效率,可以采用批量更新的方式,即单次更新多个已加密数据至加密辅助列中。其中,单次更新的已加密数据越多,带来的效率提升越明显,但是单次更新的已加密数据数量过多时,可能会导致更新失败。
[0071] 为了尽可能提升数据更新性能且保证数据更新的安全性,可以综合考虑加密辅助列的字段长度、当前应用环境下使用的数据库支持的SQL语句传输的最大数据包容量以及缓冲区大小,确定单次更新的最大条目数。其中,单次更新的最大条目数是单次批量更新时,能够一次更新的已加密数据的最大数量。另外,加密辅助列的字段长度可以基于待加密列对应的加密算法以及待加密列的字段长度确定得到;而待加密列对应的加密算法可以基于待加密列的字段类型确定得到。
[0072] 此处,通过加密辅助列的字段长度可以预估单个已加密数据的数据量;当前应用环境下使用的数据库支持的SQL语句传输的最大数据包容量是当前数据库能够支持的单次传输的最大数据量,若传输的数据量超过该值则会出错;在进行数据更新时,为了减少与磁盘的IO交互,多是针对内存里的缓冲区中的数据进行的,而单次更新的数据量过大超过缓冲区的容量大小时也会造成更新出错。因此,通过综合上述三个因素确定出的单次更新的最大条目数可以兼顾更新性能和更新操作的安全性。
[0073] 随后,基于上述单次更新的最大条目数,将各个已加密数据按目标数据表的主键批量更新至加密辅助列中;其中,单次更新至加密辅助列中的已加密数据的数量小于或等于单次更新的最大条目数。即,除最后一次更新以外,单次更新至加密辅助列中的已加密数据的数量等于单次更新的最大条目数,而最后一次更新时,更新至加密辅助列中的已加密数据的数量小于或等于单次更新的最大条目数。
[0074] 基于上述任一实施例,所述读取所述待解密列中的待解密数据并进行解密,得到所述待解密列的已解密数据后,将所述待解密列的已解密数据更新至所述解密辅助列中,具体包括:
[0075] 基于select语句读取所述待解密列中的待解密数据并将所述待解密数据按所述目标数据表的主键顺序排列;
[0076] 基于所述待解密列对应的解密算法和解密密钥对按所述目标数据表的主键顺序排列的待解密数据进行解密处理,得到所述待解密列的已解密数据;其中,所述已解密数据同样是按所述目标数据表的主键顺序排列的;
[0077] 基于update语句将所述已解密数据按所述目标数据表的主键更新至所述解密辅助列中,使得所述解密辅助列中的数据顺序与所述待解密数据中的数据顺序保持一致。
[0078] 此处,待解密数据的读取和解密,以及将已解密数据更新至解密辅助列的方式与待加密数据相同,在此不再赘述。
[0079] 基于上述任一实施例,所述基于update语句将所述已解密数据按所述目标数据表的主键更新至所述解密辅助列中,具体包括:
[0080] 基于所述解密辅助列的字段长度、当前应用环境下使用的数据库支持的SQL语句传输的最大数据包容量以及缓冲区大小,确定单次更新的最大条目数;
[0081] 基于所述单次更新的最大条目数,将所述已解密数据按所述目标数据表的主键批量更新至所述解密辅助列中;其中,单次更新至所述解密辅助列中的已解密数据的数量小于或等于所述单次更新的最大条目数。
[0082] 此处,将已解密数据更新至解密辅助列的方式与待加密数据相同,在此不再赘述。
[0083] 基于上述任一实施例,如图3所示,所述基于所述数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置,之后还包括:
[0084] 步骤310,若当前应用环境下使用的数据库不支持移动数据表中列的位置,确定当前的加解密标记;
[0085] 步骤320,若当前的加解密标记为未加密,则创建一张加密辅助表,所述加密辅助表中包含与目标数据表中待加密列的字段类型和字段长度相同的加密复制列以及与所述目标数据表的主键列的字段类型和字段长度相同的标识列;将所述待加密列中的待加密数据更新至所述加密复制列中后,读取所述加密复制列中的待加密数据并进行加密,得到所述加密复制列的已加密数据;将所述加密复制列的已加密数据更新至所述待加密列中,并删除所述加密辅助表;
[0086] 步骤330,若当前的加解密标记为已加密,则创建一张解密辅助表,所述解密辅助表中包含与目标数据表中待解密列的字段类型和字段长度相同的解密复制列以及与所述目标数据表的主键列的字段类型和字段长度相同的标识列;将所述待解密列中的待解密数据更新至所述解密复制列中后,读取所述解密复制列中的待解密数据并进行解密,得到所述解密复制列的已解密数据;将所述解密复制列的已解密数据更新至所述待解密列中,并删除所述解密辅助表。
[0087] 具体地,若当前应用环境下使用的数据库不支持移动数据表中列的位置,则需要转换加解密策略。此时,仍旧先确定当前的加解密标记以判断是进行加密处理还是解密处理。
[0088] 若当前的加解密标记为未加密,为了保证最终目标数据表的表结构不变(即列的顺序不变)且不影响目标数据表上的关联关系,可以额外创建一张加密辅助表。与双表方案不同的是,该加密辅助表中仅包含与目标数据表中待加密列的字段类型和字段长度相同的加密复制列以及与目标数据表的主键列的字段类型和字段长度相同的标识列。随后,将待加密列中的待加密数据更新至加密辅助表中的加密复制列中后,读取加密复制列中的各个待加密数据并一一进行加密,得到加密复制列的各个已加密数据。再将加密复制列的已加密数据更新至目标数据表的待加密列中,并删除加密辅助表。可见,与双表方案不同的是,本发明实施例删除的是额外创建的加密辅助表,而原始的目标数据表的表结构未变、其关联关系也未受到任何影响,从而保证了加密过程中数据库的安全性。
[0089] 类似地,在解密时,可以创建一张解密辅助表,该解密辅助表中包含与目标数据表中待解密列的字段类型和字段长度相同的解密复制列以及与目标数据表的主键列的字段类型和字段长度相同的标识列。将待解密列中的待解密数据更新至解密复制列中后,读取解密复制列中的待解密数据并进行解密,得到解密复制列的已解密数据。再将解密复制列的已解密数据更新至待解密列中,并删除解密辅助表,实现敏感列的解密,且保证了解密过程中数据库的安全性。
[0090] 下面对本发明提供的基于双列处理的列加解密装置进行描述,下文描述的基于双列处理的列加解密装置与上文描述的基于双列处理的列加解密方法可相互对应参照。
[0091] 基于上述任一实施例,图4是本发明提供的基于双列处理的列加解密装置的结构示意图,如图4所示,该装置包括:数据库功能识别单元410、加解密标记确定单元420、列移动加密单元430和列移动解密单元440。
[0092] 其中,数据库功能识别单元410用于获取当前应用环境下的数据库描述信息,并基于所述数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置;
[0093] 加解密标记确定单元420用于若当前应用环境下使用的数据库支持移动数据表中列的位置,确定当前的加解密标记;
[0094] 列移动加密单元430用于若当前的加解密标记为未加密,则在目标数据表中紧邻待加密列之后的位置处插入加密辅助列;读取所述待加密列中的待加密数据并进行加密,得到所述待加密列的已加密数据后,将所述待加密列的已加密数据更新至所述加密辅助列中;删除所述待加密列,并将所述加密辅助列的列名改为所述待加密列的列名;
[0095] 列移动解密单元440用于若当前的加解密标记为已加密,则在目标数据表中紧邻待解密列之后的位置处插入解密辅助列;读取所述待解密列中的待解密数据并进行解密,得到所述待解密列的已解密数据后,将所述待解密列的已解密数据更新至所述解密辅助列中;删除所述待解密列,并将所述解密辅助列的列名改为所述待解密列的列名。
[0096] 本发明实施例提供的装置,通过判断当前应用环境下使用的数据库是否支持移动数据表中列的位置,在当前应用环境下使用的数据库支持移动数据表中列的位置时,通过在目标数据表中紧邻待加密列之后的位置处插入加密辅助列、读取待加密数据、数据加密、已加密数据写回至加密辅助列、删除原待加密列以及加密辅助列改名等操作,实现敏感列的加密,或是通过在目标数据表中紧邻待解密列之后的位置处插入解密辅助列、读取待解密数据、数据解密、已解密数据写回至解密辅助列、删除原待解密列以及解密辅助列改名等操作,实现敏感列的解密,一方面不会丢失目标数据表上的任何关联关系,也无需进行关联关系重建,故不会影响整个数据库环境;另一方面,由于上述加解密流程并不需要删除整个目标数据表,即使在删除待加密列或待解密列时出现删除故障,也无需担心脏数据的问题,因此不会存在数据库崩溃的问题,提高了敏感列加密过程中数据库的安全性。此外,通过在目标数据表中紧邻待加密列之后的位置处插入加密辅助列,或是在目标数据表中紧邻待解密列之后的位置处插入解密辅助列,在实现敏感列加密的同时保证了目标数据表中列顺序维持不变,可以维护用户生产环境的安全。
[0097] 基于上述任一实施例,所述读取所述待加密列中的待加密数据并进行加密,得到所述待加密列的已加密数据后,将所述待加密列的已加密数据更新至所述加密辅助列中,具体包括:
[0098] 基于select语句读取所述待加密列中的待加密数据并将所述待加密数据按所述目标数据表的主键顺序排列;
[0099] 基于所述待加密列对应的加密算法和加密密钥对按所述目标数据表的主键顺序排列的待加密数据进行加密处理,得到所述待加密列的已加密数据;其中,所述已加密数据同样是按所述目标数据表的主键顺序排列的;
[0100] 基于update语句将所述已加密数据按所述目标数据表的主键更新至所述加密辅助列中,使得所述加密辅助列中的数据顺序与所述待加密数据中的数据顺序保持一致。
[0101] 基于上述任一实施例,所述基于update语句将所述已加密数据按所述目标数据表的主键更新至所述加密辅助列中,具体包括:
[0102] 基于所述加密辅助列的字段长度、当前应用环境下使用的数据库支持的SQL语句传输的最大数据包容量以及缓冲区大小,确定单次更新的最大条目数;
[0103] 基于所述单次更新的最大条目数,将所述已加密数据按所述目标数据表的主键批量更新至所述加密辅助列中;其中,单次更新至所述加密辅助列中的已加密数据的数量小于或等于所述单次更新的最大条目数。
[0104] 基于上述任一实施例,所述读取所述待解密列中的待解密数据并进行解密,得到所述待解密列的已解密数据后,将所述待解密列的已解密数据更新至所述解密辅助列中,具体包括:
[0105] 基于select语句读取所述待解密列中的待解密数据并将所述待解密数据按所述目标数据表的主键顺序排列;
[0106] 基于所述待解密列对应的解密算法和解密密钥对按所述目标数据表的主键顺序排列的待解密数据进行解密处理,得到所述待解密列的已解密数据;其中,所述已解密数据同样是按所述目标数据表的主键顺序排列的;
[0107] 基于update语句将所述已解密数据按所述目标数据表的主键更新至所述解密辅助列中,使得所述解密辅助列中的数据顺序与所述待解密数据中的数据顺序保持一致。
[0108] 基于上述任一实施例,所述基于update语句将所述已解密数据按所述目标数据表的主键更新至所述解密辅助列中,具体包括:
[0109] 基于所述解密辅助列的字段长度、当前应用环境下使用的数据库支持的SQL语句传输的最大数据包容量以及缓冲区大小,确定单次更新的最大条目数;
[0110] 基于所述单次更新的最大条目数,将所述已解密数据按所述目标数据表的主键批量更新至所述解密辅助列中;其中,单次更新至所述解密辅助列中的已解密数据的数量小于或等于所述单次更新的最大条目数。
[0111] 基于上述任一实施例,该装置还包括辅助加解密单元,所述基于所述数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置之后,辅助加解密单元还用于:
[0112] 若当前应用环境下使用的数据库不支持移动数据表中列的位置,确定当前的加解密标记;
[0113] 若当前的加解密标记为未加密,则创建一张加密辅助表,所述加密辅助表中包含与目标数据表中待加密列的字段类型和字段长度相同的加密复制列以及与所述目标数据表的主键列的字段类型和字段长度相同的标识列;将所述待加密列中的待加密数据更新至所述加密复制列中后,读取所述加密复制列中的待加密数据并进行加密,得到所述加密复制列的已加密数据;将所述加密复制列的已加密数据更新至所述待加密列中,并删除所述加密辅助表;
[0114] 若当前的加解密标记为已加密,则创建一张解密辅助表,所述解密辅助表中包含与目标数据表中待解密列的字段类型和字段长度相同的解密复制列以及与所述目标数据表的主键列的字段类型和字段长度相同的标识列;将所述待解密列中的待解密数据更新至所述解密复制列中后,读取所述解密复制列中的待解密数据并进行解密,得到所述解密复制列的已解密数据;将所述解密复制列的已解密数据更新至所述待解密列中,并删除所述解密辅助表。
[0115] 图5是本发明提供的电子设备的结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、存储器(memory)520、通信接口(Communications Interface)530和通信总线540,其中,处理器510,存储器520,通信接口530通过通信总线540完成相互间的通信。处理器510可以调用存储器520中的逻辑指令,以执行基于双列处理的列加解密方法,该方法包括:获取当前应用环境下的数据库描述信息,并基于所述数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置;若当前应用环境下使用的数据库支持移动数据表中列的位置,确定当前的加解密标记;若当前的加解密标记为未加密,则在目标数据表中紧邻待加密列之后的位置处插入加密辅助列;读取所述待加密列中的待加密数据并进行加密,得到所述待加密列的已加密数据后,将所述待加密列的已加密数据更新至所述加密辅助列中;删除所述待加密列,并将所述加密辅助列的列名改为所述待加密列的列名;若当前的加解密标记为已加密,则在目标数据表中紧邻待解密列之后的位置处插入解密辅助列;读取所述待解密列中的待解密数据并进行解密,得到所述待解密列的已解密数据后,将所述待解密列的已解密数据更新至所述解密辅助列中;删除所述待解密列,并将所述解密辅助列的列名改为所述待解密列的列名。
[0116] 此外,上述的存储器520中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0117] 另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于双列处理的列加解密方法,该方法包括:获取当前应用环境下的数据库描述信息,并基于所述数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置;若当前应用环境下使用的数据库支持移动数据表中列的位置,确定当前的加解密标记;若当前的加解密标记为未加密,则在目标数据表中紧邻待加密列之后的位置处插入加密辅助列;读取所述待加密列中的待加密数据并进行加密,得到所述待加密列的已加密数据后,将所述待加密列的已加密数据更新至所述加密辅助列中;删除所述待加密列,并将所述加密辅助列的列名改为所述待加密列的列名;若当前的加解密标记为已加密,则在目标数据表中紧邻待解密列之后的位置处插入解密辅助列;读取所述待解密列中的待解密数据并进行解密,得到所述待解密列的已解密数据后,将所述待解密列的已解密数据更新至所述解密辅助列中;删除所述待解密列,并将所述解密辅助列的列名改为所述待解密列的列名。
[0118] 又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的基于双列处理的列加解密方法,该方法包括:获取当前应用环境下的数据库描述信息,并基于所述数据库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置;若当前应用环境下使用的数据库支持移动数据表中列的位置,确定当前的加解密标记;若当前的加解密标记为未加密,则在目标数据表中紧邻待加密列之后的位置处插入加密辅助列;读取所述待加密列中的待加密数据并进行加密,得到所述待加密列的已加密数据后,将所述待加密列的已加密数据更新至所述加密辅助列中;删除所述待加密列,并将所述加密辅助列的列名改为所述待加密列的列名;若当前的加解密标记为已加密,则在目标数据表中紧邻待解密列之后的位置处插入解密辅助列;读取所述待解密列中的待解密数据并进行解密,得到所述待解密列的已解密数据后,将所述待解密列的已解密数据更新至所述解密辅助列中;删除所述待解密列,并将所述解密辅助列的列名改为所述待解密列的列名。
[0119] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0120] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0121] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。