(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211299010.0
(22)申请日 2022.10.24
(71)申请人 闪捷信息科技有限公司
地址 311100 浙江省杭州市余杭区五常街
道文一西路9 98号9幢101室
(72)发明人 张黎 刘维炜 余杰 李蓓蓓
(74)专利代理 机构 北京超凡宏宇专利代理事务
所(特殊普通 合伙) 11463
专利代理师 赵兴
(51)Int.Cl.
G06F 21/60(2013.01)
G06F 16/242(2019.01)
G06F 16/23(2019.01)
G06F 16/215(2019.01)
(54)发明名称
基于双列处 理的列加解密方法和装置
(57)摘要
本发明提供一种基于双列处理的列加解密
方法和装置, 其中方法包括: 获取当前应用环境
下的数据库描述信息, 并基于数据库描述信息确
定当前应用环境下使用的数据库是否支持移动
数据表中列的位置; 若当前应用环 境下使用的数
据库支持移动数据表中列的位置, 且当前的加解
密标记为未加密, 则在目标数据表中紧邻待加密
列之后的位置处插入加密辅助列; 读取待加密列
中的待加密数据并进行加密, 得到待加密列的已
加密数据后, 将待加密列的已加密数据更新至加
密辅助列中; 删除待加密列, 并将加密辅助列的
列名改为待加密列的列名; 若当前的加解密标记
为已加密, 解密方式类似上述加密方式。 本发明
提高了敏感列加解密过程中数据库的安全性。
权利要求书3页 说明书13页 附图4页
CN 115374464 A
2022.11.22
CN 115374464 A
1.一种基于双列处 理的列加解密方法, 其特 征在于, 包括:
获取当前应用环境下的数据库描述信 息, 并基于所述数据库描述信 息确定当前应用环
境下使用的数据库是否支持移动数据表中列的位置;
若当前应用环境下使用的数据库支持移动数据表中列的位置, 确定当前的加解密标
记;
若当前的加解密标记为未加密, 则在目标数据表中紧邻待加密列之后的位置处插入加
密辅助列; 读取所述待加密列中的待加密数据并进行加密, 得到所述待加密列的 已加密数
据后, 将所述待加密列的已加密数据更新至所述加密辅助列中; 删除所述待加密列, 并将所
述加密辅助列的列名改为所述待加密列的列名;
若当前的加解密标记为已加密, 则在目标数据表中紧邻待解密列之后的位置处插入解
密辅助列; 读取所述待解密列中的待解密数据并进行解密, 得到所述待解密列的 已解密数
据后, 将所述待解密列的已解密数据更新至所述解密辅助列中; 删除所述待解密列, 并将所
述解密辅助列的列名改为所述待解密列的列名。
2.根据权利要求1所述的基于双列处理 的列加解密方法, 其特征在于, 所述读取所述待
加密列中的待加密数据并进行加密, 得到所述待加密列的 已加密数据后, 将所述待加密列
的已加密数据更新至所述加密辅助列中, 具体包括:
基于select语句读取所述待加密列中的待加密数据并将所述待加密数据按所述目标
数据表的主键顺序排列;
基于所述待加密列对应的加密算法和加密密钥对按所述目标数据表的主键顺序排列
的待加密数据进行加密处理, 得到所述待加密列的已加密数据; 其中, 所述已加密数据同样
是按所述目标 数据表的主键顺序排列的;
基于update语句将所述已加密数据按所述目标数据表的主键更新至所述加密辅助列
中, 使得所述加密辅助列中的数据顺序与所述待加密数据中的数据顺序保持一 致。
3.根据权利 要求2所述的基于双列处理的列加解密方法, 其特征在于, 所述基于update
语句将所述已加密数据按所述目标 数据表的主键更新至所述加密辅助列中, 具体包括:
基于所述加密辅助列的字段长度、 当前应用环境下使用的数据库支持的SQL语句传输
的最大数据包容 量以及缓冲区大小, 确定单次更新的最大 条目数;
基于所述单次更新的最大条目数, 将所述已加密数据按所述目标数据表的主键批量更
新至所述加密辅助列中; 其中, 单次更新至所述加密辅助列中的 已加密数据的数量小于或
等于所述单次更新的最大 条目数。
4.根据权利要求1所述的基于双列处理 的列加解密方法, 其特征在于, 所述读取所述待
解密列中的待解密数据并进行解密, 得到所述待解密列的 已解密数据后, 将所述待解密列
的已解密数据更新至所述 解密辅助列中, 具体包括:
基于select语句读取所述待解密列中的待解密数据并将所述待解密数据按所述目标
数据表的主键顺序排列;
基于所述待解密列对应的解密算法和解密密钥对按所述目标数据表的主键顺序排列
的待解密数据进行解密处理, 得到所述待解密列的已解密数据; 其中, 所述已解密数据同样
是按所述目标 数据表的主键顺序排列的;
基于update语句将所述已解密数据按所述目标数据表的主键更新至所述解密辅助列权 利 要 求 书 1/3 页
2
CN 115374464 A
2中, 使得所述解密辅助列中的数据顺序与所述待解密数据中的数据顺序保持一 致。
5.根据权利 要求4所述的基于双列处理的列加解密方法, 其特征在于, 所述基于update
语句将所述已解密数据按所述目标 数据表的主键更新至所述 解密辅助列中, 具体包括:
基于所述解密辅助列的字段长度、 当前应用环境下使用的数据库支持的SQL语句传输
的最大数据包容 量以及缓冲区大小, 确定单次更新的最大 条目数;
基于所述单次更新的最大条目数, 将所述已解密数据按所述目标数据表的主键批量更
新至所述解密辅助列中; 其中, 单次更新至所述解密辅助列中的 已解密数据的数量小于或
等于所述单次更新的最大 条目数。
6.根据权利要求3或5所述的基于双列处理的列加解密方法, 其特征在于, 所述加密辅
助列的字段长度是基于所述待加密列对应的加密算法以及所述待加密列的字段长度确定
的; 所述待加密列对应的加密算法是基于所述待加密列的字段类型确定的; 所述解密辅助
列的字段长度是基于所述待解密列对应的解密算法以及所述待解密列的字段长度确定的;
所述待解密列对应的解密算法是基于所述待解密列的字段类型确定的。
7.根据权利要求1所述的基于双列处理 的列加解密方法, 其特征在于, 所述基于所述数
据库描述信息确定 当前应用环境下使用的数据库是否支持移动数据表中列的位置, 之后还
包括:
若当前应用环境下使用的数据库不支持移动数据表中列的位置, 确定当前的加解密标
记;
若当前的加解密标记为未加密, 则创建一张加密辅助表, 所述加密辅助表中包含与目
标数据表中待加密列的字段类型和字段长度相同的加密 复制列以及与所述目标数据表的
主键列的字段类型和字段长度相同的标识列; 将所述待加密列中的待加密数据更新至所述
加密复制列中后, 读取所述加密复制列中的待加密数据并进行加密, 得到所述加密 复制列
的已加密数据; 将所述加密 复制列的 已加密数据更新至所述待加密列中, 并删除所述加密
辅助表;
若当前的加解密标记为已加密, 则创建一张解密辅助表, 所述解密辅助表中包含与目
标数据表中待解密列的字段类型和字段长度相同的解密 复制列以及与所述目标数据表的
主键列的字段类型和字段长度相同的标识列; 将所述待解密列中的待解密数据更新至所述
解密复制列中后, 读取所述解密复制列中的待解密数据并进行解密, 得到所述解密 复制列
的已解密数据; 将所述解密 复制列的 已解密数据更新至所述待解密列中, 并删除所述解密
辅助表。
8.一种基于双列处 理的列加解密装置, 其特 征在于, 包括:
数据库功能识别单元, 用于获取当前应用环境下的数据库描述信息, 并基于所述数据
库描述信息确定当前应用环境下使用的数据库是否支持移动数据表中列的位置;
加解密标记确定单元, 用于若当前应用环境下使用的数据库支持移动数据表中列的位
置, 确定当前的加解密标记;
列移动加密单元, 用于若当前的加解密标记为未加密, 则在目标数据表中紧邻待加密
列之后的位置处插入加密辅助列; 读取所述待加密列中的待加密数据并进行加密, 得到所
述待加密列的 已加密数据后, 将所述待加密列的 已加密数据更新至所述加密辅助列中; 删
除所述待加密列, 并将所述加密辅助列的列名改为所述待加密列的列名;权 利 要 求 书 2/3 页
3
CN 115374464 A
3
专利 基于双列处理的列加解密方法和装置
文档预览
中文文档
21 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共21页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 思考人生 于 2024-02-07 20:38:24上传分享