CN114491580B - 一种数据库敏感信息加密方法及装置 - Google Patents
一种数据库敏感信息加密方法及装置 Download PDFInfo
- Publication number
- CN114491580B CN114491580B CN202111643067.3A CN202111643067A CN114491580B CN 114491580 B CN114491580 B CN 114491580B CN 202111643067 A CN202111643067 A CN 202111643067A CN 114491580 B CN114491580 B CN 114491580B
- Authority
- CN
- China
- Prior art keywords
- data
- field
- database
- encryption
- encrypted
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种数据库敏感信息加密方法及装置,该方法包括:预先设计一字段加密标记,将该字段加密标记添加在数据库中需要被加密的字段上;将加密密钥进行解密获得明文密钥,以初始化值转换器;对已添加字段加密标记的加密字段进行解析,为该加密字段添加对应的值转换器;从数据库中读取数据时,值转换器从数据库中获取数据,并检查该数据是否已被加密,如果是,则进行解密;向数据库中写入数据时,值转换器预先检查该数据是否需要被加密的字段,如果是,则检查该数据是否已被加密,如果否,则进行加密后再将其写入数据库。本发明通过对需要进行加密的字段进行字段加密标记,实现了自动根据字段加密标记添加数据库字段值转换器的机制。
Description
技术领域
本发明涉及信息安全技术领域,具体涉及一种数据库敏感信息加密方法及装置。
背景技术
随着信息化进程的不断推进,信息资产成为了企业的核心资产之一,如何采用技术手段维护企业业务数据的安全性已成为企业普遍关注的问题。而作为数据存储和管理的核心部件,数据库系统的安全性更是引起的广泛的重视。为此,现有技术中对数据库的敏感信息进行加密操作,通常的加密操作需要对整个数据库以及数据库的表结构进行重新设计,并且针对不同的数据库需要设计不同的加密解密算法以及针对性的读取操作,其无论人力还是物力均耗费巨大。为此,本申请提供一种无需对整个数据库进行改进即可实现的通用性的方案。
发明内容
在下文中给出了关于本发明实施例的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,以下概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
根据本申请的一个方面,提供一种数据库敏感信息加密方法,包括:基于.NETCore支持的反射机制,对数据库中需要被加密的字段进行自动检测标记并进行加解密,具体过程如下:
预先设计一字段加密标记,将该字段加密标记添加在数据库中需要被加密的字段上,作为已添加字段加密标记的加密字段;
将加密密钥进行解密获得明文密钥,以用来初始化值转换器;
对已添加字段加密标记的加密字段进行解析,并为该加密字段添加对应的值转换器;
从数据库中读取数据时,值转换器从数据库中获取数据,并检查该数据是否已被加密,如果是,则进行解密;
向数据库中写入数据时,值转换器预先检查该数据是否需要被加密的字段,如果是,则检查该数据是否已被加密,如果否,则进行加密后再将其写入数据库。
其中,所述值转换器包括解密器和加密器(加解密单元),使用时,值转换器内部调用相应的值转换器操作:数据流经过值转换器后会被转换,根据流向的正反决定该数据如何被转换。
现有技术中,普通的加密解决方案往往需要对每个需要加密的实体手动配置值转换器,才能做到数据的加解密,工作量会随需要加密的字段增多而快速增长,并且需要开发人员手动配置,极其容易出错。本方案使用反射技术自动识别到标记后,可同时获取到标记对应的字段与实体,并自动完成值转换器的添加,无需开发人员手动编写代码,提高开发效率并降低错误率。
采用上述方案,当数据库增加新的需要加密的表或者字段时,开发人员无需重复实现全套加密机制,只需要简单地添加字段加密标记即可自动实现加密,有良好的可扩展性。
其中,值转换器设有多个,将其编号记为1~n号,不同的加密字段和不同的值转换器可以有多种对应方式,一种方案是在字段标记上配置数字属性,取值范围为1~n,根据属性的值指定使用对应编号的值转换器;另一种方案是根据字段名称及所属的表名称,通过哈希计算的方式获取一个1~n范围内的值,然后指定使用对应编号的值转换器。为加密字段添加值转换器的对应方式包括但不限于上述两种方案。
进一步的, 将该字段加密标记添加在数据库中需要被加密的字段上。具体包括:根据数据库表结构,判断数据库中哪些字段需要进行加密,并在该需要进行加密的字段对应的实体字段上增加字段加密标记,以表明该字段需要进行加密。
进一步的,将该字段加密标记添加在数据库中需要被加密的字段上还包括:完成字段加密标记后,增加数据库连接初始化代码和服务初始化代码;所述数据库连接初始化代码用于自动识别实体字段上的标记,并在建立与数据库的对应关系时增加数据转换器;所述服务初始化代码用于增加密钥服务器连接服务,用于将配置文件中的加密密钥解密为实际可使用的明文密钥。
进一步的,值转换器预先检查该数据是否需要被加密的字段具体包括:所述值转换器自动识别数据的数据格式,根据数据格式判断该数据是否需要加解密;如果数据包含特殊格式的数据头,则在加密时不加密该数据,在解密时尝试解密该数据;如果数据不包含该数据头,则在加密时加密该数据,在解密时不尝试解密该数据。
进一步的,初始化值转换器包括如下过程:
读取密钥配置文件,获取所有的加密后的加密密钥;
获取到所有的加密密钥之后,加载密钥服务器连接服务,并将所有的加密密钥通过安全信道传输给密钥服务器,在密钥服务器中解密之后,得到明文密钥并返回;获取到所有的明文密钥后,将其存储在内存当中;如果获取明文密钥的过程中出现任何异常,导致未能获取到所有明文密钥,则重新尝试获取密钥,直到完成获取所有明文密钥;
获取所有明文密钥后,读取配置项,建立实体与数据库表的对应关系;在读取配置项过程中,扫描实体中每个字段上的标记;如果实体的各字段上不包含任何标记,则正常建立和数据库字段的对应关系;如果实体包含具有字段加密标记的字段,则根据字段加密标记配置计算得出对应的密钥编号,并根据密钥编号获取字段对应的明文密钥,使用该明文密钥初始化值转换器,并创建调用该值转换器的数据转换器;之后在建立实体字段和数据库字段的对应关系时,将该数据转换器添加到对应关系当中。
完成上述流程后,值转换器初始化完成。
进一步的,从数据库中读取数据时,数据从数据库中读取出来后,根据实体与数据库表的对应关系进行转换;如果对应关系中包含数据转换器,则调用数据转换器中的值转换器,对数据进行解密。
进一步的,向数据库中写入数据时,在数据写入数据库之前,根据实体与数据库表的对应关系进行转换;如果对应关系中包含数据转换器,则调用数据转换器中的值转换器,对数据进行加密。
实际应用时,读取数据库之后自动立即进行解密操作,写入数据库之前自动立即进行加密操作。
根据本申请的另一方面,提供一种数据库敏感信息加密装置,包括:
预处理单元,该预处理单元预先设计一字段加密标记,将该字段加密标记添加在数据库中需要被加密的字段上,作为已添加字段加密标记的加密字段;
值转换器,该值转换器用于对已添加字段加密标记的加密字段进行加密和解密;
初始化单元,该初始化单元将加密密钥进行解密获得明文密钥,以用来初始化值转换器;
分析器,该分析器用于对已添加字段加密标记的加密字段进行解析,并为该加密字段添加对应的值转换器;
执行单元,该执行单元用于执行:从数据库中读取数据时,值转换器从数据库中获取数据,并检查该数据是否已被加密,如果是,则进行解密;向数据库中写入数据时,值转换器预先检查该数据是否需要被加密的字段,如果是,则检查该数据是否已被加密,如果否,则进行加密后再将其写入数据库。
其中,优选的,所述加密密钥的生成和解密通过独立的值转换器实现的。
进一步的,所述预处理单元执行如下操作:根据数据库表结构,判断数据库中哪些字段需要进行加密,并在该需要进行加密的字段对应的实体字段上增加字段加密标记,以表明该字段需要进行加密。
进一步的,所述预处理单元还执行如下操作:完成字段加密标记后,增加数据库连接初始化代码和服务初始化代码;所述数据库连接初始化代码用于自动识别实体字段上的标记,并在建立与数据库的对应关系时增加数据转换器;所述服务初始化代码用于增加密钥服务器连接服务,用于将配置文件中的加密密钥解密为实际可使用的明文密钥。
本申请为实现字段数据的加密与解密,基于.NET Core平台的特性,利用其扩展机制,使用数据库字段值转换器在获取数据时动态进行加解密操作。与现有技术相比,本发明具有如下有益效果:
1、通过对需要进行加密的字段进行属性标记(字段加密标记),实现了自动根据字段加密标记添加数据库字段值转换器的机制;
2、同时,加解密操作需要的密钥通过独立的生成器进行生成并加密,仅在使用密钥时进行解密,保证密钥本身安全性;
3、本发明的方案对加密算法没有限制,用户可根据自身需要选择任意平台支持的加密算法;同时,由于大多数标准加密算法均有硬件级加速支持,该方案对性能的影响轻微不计,可以忽略,因此还同时具有节约硬件成本的优势;
4、本发明的方案仅需要在需要加密的字段或者属性进行字段加密标记,不涉及对原有系统业务代码的改造,可兼容大多数原有业务代码,对系统的影响控制在最小限度;由于值转换器可自动识别数据是否被加密,该方案支持加密数据与未加密数据共存,在进行加密改造时更加平滑。
附图说明
图1为本发明的值转换器的原理示意图。
具体实施方式
下面将说明本发明的实施例。
为实现字段数据的加密与解密,本发明部署在.NET Core平台上,利用.NET Core平台的特性,基于其扩展机制,使用数据库字段值转换器在获取数据时动态进行加解密操作。同时,通过预先对需要被加密的字段进行属性标记,实现自动根据字段加密标记添加数据库字段值转换器的机制。
本发明的数据库敏感信息加密方法可以在现有业务系统上进行简单部署改造即可实现,其具体部署方式如下:
该方案部署前需要确认满足以下条件:项目使用的.NET Core版本不低于2.1。
在开始改造前,应当先向密钥服务器申请一批密钥。密钥服务器会生成这些密钥,并默认将这些密钥进行加密。开发人员应当获取这些加密后的密钥,并保存在配置文件中,供后续读取。
开始改造时,首先应当根据数据库表结构,判断数据库中哪些字段需要进行加密,并在需要加密的数据库字段对应的实体字段上增字段加标记,以表明该字段需要进行加密;
完成字段加密标记后,需要增加两组初始化代码,分别用于数据库连接初始化和服务初始化;其中,数据库连接初始化代码用于自动识别实体字段上的标记,并在建立与数据库的对应关系时增加数据转换器;服务初始化代码用于增加密钥服务器连接服务,用于将配置文件中的加密密钥解密为实际可使用的明文密钥;
接下来,增加值转换器的相关代码,此处推荐使用标准的AES加密方案进行加解密,密钥长度为256位,用户可自行决定切换为其他的加密方案;
值转换器会自动识别数据格式,根据数据格式判断数据是否需要加解密:如果数据包含特殊格式的数据头,则在加密时不加密该数据,在解密时尝试解密该数据;如果数据不包含该数据头,则在加密时加密该数据,在解密时不尝试解密该数据。其中,特殊格式为用户自定义为加密数据的某种字符串组合格式,具体格式可在实际应用方案过程当中决定。举个例子来说,规定所有加密数据以!@#$开头,则asdf会被判断为明文数据,而!@#$asdf会被判断为密文数据。由于实际业务中不会出现!@#$这种字符串,所以不会将明文数据错判为密文数据。
预先设计一字段加密标记,将该字段加密标记添加在数据库中需要被加密的字段上,作为已添加字段加密标记的加密字段;
将加密密钥进行解密获得明文密钥,以用来初始化值转换器;
对已添加字段加密标记的加密字段进行解析,并为该加密字段添加对应的值转换器;
从数据库中读取数据时,值转换器从数据库中获取数据,并检查该数据是否已被加密,如果是,则进行解密;
向数据库中写入数据时,值转换器预先检查该数据是否需要被加密的字段,如果是,则检查该数据是否已被加密,如果否,则进行加密后再将其写入数据库。
其中,所述值转换器包括解密器和加密器(加解密单元),使用时,值转换器内部调用相应的值转换器操作:数据流经过值转换器后会被转换,根据流向的正反决定该数据如何被转换。
本发明基于.NET Core所支持的反射技术,实现了自动检测标记并进行加解密,后续如果追加了新的表和字段需要加密,开发人员无需重复实现全套加密机制,只需要简单地添加标记即可自动实现加密,有良好的可扩展性。
实施例1
本发明实施例提供一种数据库敏感信息加密方法,其包括:
预先设计一字段加密标记,将该字段加密标记添加在数据库中需要被加密的字段上,作为已添加字段加密标记的加密字段;
将加密密钥进行解密获得明文密钥,以用来初始化值转换器;
对已添加字段加密标记的加密字段进行解析,并为该加密字段添加对应的值转换器;
从数据库中读取数据时,值转换器从数据库中获取数据,并检查该数据是否已被加密,如果是,则进行解密;
向数据库中写入数据时,值转换器预先检查该数据是否需要被加密的字段,如果是,则检查该数据是否已被加密,如果否,则进行加密后再将其写入数据库。
其中,加密密钥的生成和解密通过独立的值转换器进行。参见图1,值转换器包括解密器和加密器(加解密单元),使用时,值转换器内部调用相应的值转换器操作:数据流经过值转换器后会被转换,根据流向的正反决定该数据如何被转换。
本实施例给出一个在需要被加密的字段添加字段加密标记的具体实现代码:
public class CandidateFormValue : BaseModel
{
/// <summary>
/// 标识
/// </summary>
public string CandidateFormValueID { get; set; }
/// <summary>
/// 表单ID
/// </summary>
public string CandidateFormID { get; set; }
/// <summary>
/// 字段定义ID
/// </summary>
public string EmployeeFieldID { get; set; }
/// <summary>
/// 值
/// </summary>
[EncryptColumn]
public string Value { get; set; }
}
上述代码即为实体,其中包含了四个字段CandidateFormValueID、CandidateFormID、EmployeeFieldID、Value,其中Value字段被添加了加密字段标记[EncryptColumn]。
上述数据库敏感信息加密方法的加解密流程如下:
该加密方法的应用程序启动时,首先读取密钥配置文件,获取所有的加密后的密钥;
获取到所有的加密密钥之后,加载密钥服务器连接服务,并将所有的加密密钥通过安全信道传输给密钥服务器,在密钥服务器中解密之后,得到明文密钥并返回给应用。应用程序获取到所有的明文密钥后,将其存储在内存当中。如果应用程序获取明文密钥的过程中出现任何异常,导致未能获取到所有明文密钥,则应当重试获取密钥,直到完成获取所有密钥。如仍然不能获取到密钥,则停止应用启动。
接下来在应用程序启动过程中,应用程序会读取配置项,建立实体与数据库表的对应关系。在读取过程中,扫描实体中每个字段上的标记。如果实体字段上不包含任何标记,则正常建立和数据库字段的对应关系;如果实体字段上包含加密标记,则根据加密标记配置计算得出对应的密钥编号,并根据编号获取字段对应的明文密钥,使用该密钥初始化值转换器,并创建调用该值转换器的数据转换器。之后在建立实体字段和数据库字段的对应关系时,将该数据转换器添加到对应关系当中。
完成上述流程后,值转换器初始化完成。
用户读取数据时,数据从数据库中读取出来后,根据实体与数据库表的对应关系进行转换;如果对应关系中包含数据转换器,则调用数据转换器中的值转换器,对数据进行解密。
用户保存数据时,在数据写入数据库之前,根据实体与数据库表的对应关系进行转换;如果对应关系中包含数据转换器,则调用数据转换器中的值转换器,对数据进行加密。
其中,初始化加密及更换密钥设计如下:应用该加密方案后,新插入及修改的数据会自动变为加密数据。为了让历史数据也能被加密,需要进行额外的初始化操作。
具体来说,需要将历史数据全部读取一次,并原样写入至数据库。值转换器会自动识别尚未加密的数据,并将其加密后存入数据库。
根据安全实践经验,定期更换密钥有助于保证数据安全性 。
如需要更换密钥,应当首先将所有数据进行解密,之后更换密钥配置文件,再使用新的密钥配置文件进行上述初始化加密流程 。
该方案对加密算法没有限制,用户可根据自身需要选择任意平台支持的加密算法。由于大多数标准加密算法均有硬件级加速支持,该方案对性能的影响轻微不计,可以忽略,因此节约了硬件成本。
实施例2
本发明实施例提供一种数据库敏感信息加密装置,包括:
预处理单元,该预处理单元预先设计一字段加密标记,将该字段加密标记添加在数据库中需要被加密的字段上,作为已添加字段加密标记的加密字段;
值转换器,该值转换器用于对已添加字段加密标记的加密字段进行加密和解密;
初始化单元,该初始化单元将加密密钥进行解密获得明文密钥,以用来初始化值转换器;
分析器,该分析器用于对已添加字段加密标记的加密字段进行解析,并为该加密字段添加对应的值转换器;
执行单元,该执行单元用于执行:从数据库中读取数据时,值转换器从数据库中获取数据,并检查该数据是否已被加密,如果是,则进行解密;向数据库中写入数据时,值转换器预先检查该数据是否需要被加密的字段,如果是,则检查该数据是否已被加密,如果否,则进行加密后再将其写入数据库。
此外,该装置还包括:用户信息存储单元,用于存储执行过程中的加密密钥、明文密钥等等以及数据的对应关系。
实际使用时,可首先对数据库中的字段进行设置是否需要加密。然后通过分析器和执行单元对数据库进行读取或者写入,并在读取或者写入的过程中进行加密解密操作。通过上述方案,用户可以预先设置哪些字段需要加密,即可实现在实际应用中的加密解密读取和写入,非常适合对现有数据库的进行改造。
此外,本发明的方案不涉及对原有系统业务代码的改造,可兼容大多数原有业务代码,对系统的影响控制在最小限度;同时,由于值转换器可自动识别数据是否被加密,该方案支持加密数据与未加密数据共存,在进行加密改造时更加平滑 。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
此外,本发明的方法不限于按照说明书中描述的时间顺序来执行,也可以按照其他的时间顺序地、并行地或独立地执行。因此,本说明书中描述的方法的执行顺序不对本发明的技术范围构成限制。
尽管上面已经通过对本发明的具体实施例的描述对本发明进行了披露,但是,应该理解,上述的所有实施例和示例均是示例性的,而非限制性的。本领域的技术人员可在所附权利要求的精神和范围内设计对本发明的各种修改、改进或者等同物。这些修改、改进或者等同物也应当被认为包括在本发明的保护范围内。
Claims (9)
1.一种数据库敏感信息加密方法,其特征在于:基于.NET Core支持的反射机制,对数据库中需要被加密的字段进行自动检测标记并进行加解密,具体包括:
预先设计一字段加密标记,将该字段加密标记添加在数据库中需要被加密的字段上,作为已添加字段加密标记的加密字段;
将加密密钥进行解密获得明文密钥,以用来初始化值转换器;
对已添加字段加密标记的加密字段进行解析,并为该加密字段添加对应的值转换器;
从数据库中读取数据时,值转换器从数据库中获取数据,并检查该数据是否已被加密,如果是,则进行解密;
向数据库中写入数据时,值转换器预先检查该数据是否需要被加密的字段,如果是,则检查该数据是否已被加密,如果否,则进行加密后再将其写入数据库;其中,所述初始化值转换器包括如下过程:
读取密钥配置文件,获取所有的加密后的加密密钥;
获取到所有的加密密钥之后,加载密钥服务器连接服务,并将所有的加密密钥通过安全信道传输给密钥服务器,在密钥服务器中解密之后,得到明文密钥并返回;获取到所有的明文密钥后,将其存储在内存当中;如果获取明文密钥的过程中出现任何异常,导致未能获取到所有明文密钥,则重新尝试获取密钥,直到完成获取所有明文密钥;
获取所有明文密钥后,读取配置项,建立实体与数据库表的对应关系;在读取配置项过程中,扫描实体中每个字段上的标记;如果实体的各字段上不包含任何标记,则正常建立和数据库字段的对应关系;如果实体包含具有字段加密标记的字段,则根据字段加密标记配置计算得出对应的密钥编号,并根据密钥编号获取字段对应的明文密钥,使用该明文密钥初始化值转换器,并创建调用该值转换器的数据转换器;之后在建立实体字段和数据库字段的对应关系时,将该数据转换器添加到对应关系当中。
2.根据权利要求1所述的数据库敏感信息加密方法,其特征在于:所述将字段加密标记添加在数据库中需要被加密的字段上具体包括:根据数据库表结构,判断数据库中哪些字段需要进行加密,并在该需要进行加密的字段对应的实体字段上增加字段加密标记,以表明该字段需要进行加密。
3.根据权利要求1所述的数据库敏感信息加密方法,其特征在于:所述将字段加密标记添加在数据库中需要被加密的字段上还包括:完成字段加密标记后,增加数据库连接初始化代码和服务初始化代码;所述数据库连接初始化代码用于自动识别实体字段上的标记,并在建立与数据库的对应关系时增加数据转换器;所述服务初始化代码用于增加密钥服务器连接服务,用于将配置文件中的加密密钥解密为实际可使用的明文密钥。
4.根据权利要求1所述的数据库敏感信息加密方法,其特征在于:所述值转换器预先检查该数据是否需要被加密的字段具体包括:所述值转换器自动识别数据的数据格式,根据数据格式判断该数据是否需要加解密;如果数据包含特殊格式的数据头,则在加密时不加密该数据,在解密时尝试解密该数据;如果数据不包含该数据头,则在加密时加密该数据,在解密时不尝试解密该数据。
5.根据权利要求1所述的数据库敏感信息加密方法,其特征在于:从数据库中读取数据时,数据从数据库中读取出来后,根据实体与数据库表的对应关系进行转换;如果对应关系中包含数据转换器,则调用数据转换器中的值转换器,对数据进行解密。
6.根据权利要求1所述的数据库敏感信息加密方法,其特征在于:向数据库中写入数据时,在数据写入数据库之前,根据实体与数据库表的对应关系进行转换;如果对应关系中包含数据转换器,则调用数据转换器中的值转换器,对数据进行加密。
7.一种数据库敏感信息加密装置,其特征在于:包括:
预处理单元,该预处理单元预先设计一字段加密标记,将该字段加密标记添加在数据库中需要被加密的字段上,作为已添加字段加密标记的加密字段;
值转换器,该值转换器用于对已添加字段加密标记的加密字段进行加密和解密;初始化单元,该初始化单元将加密密钥进行解密获得明文密钥,以用来初始化值转换器;
分析器,该分析器用于对已添加字段加密标记的加密字段进行解析,并为该加密字段添加对应的值转换器;
执行单元,该执行单元用于执行:从数据库中读取数据时,值转换器从数据库中获取数据,并检查该数据是否已被加密,如果是,则进行解密;向数据库中写入数据时,值转换器预先检查该数据是否需要被加密的字段,如果是,则检查该数据是否已被加密,如果否,则进行加密后再将其写入数据库;
其中,所述初始化单元的初始化值转换器具体包括:
读取密钥配置文件,获取所有的加密后的加密密钥;
获取到所有的加密密钥之后,加载密钥服务器连接服务,并将所有的加密密钥通过安全信道传输给密钥服务器,在密钥服务器中解密之后,得到明文密钥并返回;获取到所有的明文密钥后,将其存储在内存当中;如果获取明文密钥的过程中出现任何异常,导致未能获取到所有明文密钥,则重新尝试获取密钥,直到完成获取所有明文密钥;
获取所有明文密钥后,读取配置项,建立实体与数据库表的对应关系;在读取配置项过程中,扫描实体中每个字段上的标记;如果实体的各字段上不包含任何标记,则正常建立和数据库字段的对应关系;如果实体包含具有字段加密标记的字段,则根据字段加密标记配置计算得出对应的密钥编号,并根据密钥编号获取字段对应的明文密钥,使用该明文密钥初始化值转换器,并创建调用该值转换器的数据转换器;之后在建立实体字段和数据库字段的对应关系时,将该数据转换器添加到对应关系当中。
8.根据权利要求7所述的数据库敏感信息加密装置,其特征在于:所述预处理单元执行如下操作:根据数据库表结构,判断数据库中哪些字段需要进行加密,并在该需要进行加密的字段对应的实体字段上增加字段加密标记,以表明该字段需要进行加密。
9.根据权利要求7所述的数据库敏感信息加密装置,其特征在于:所述预处理单元还执行如下操作:完成字段加密标记后,增加数据库连接初始化代码和服务初始化代码;所述数据库连接初始化代码用于自动识别实体字段上的标记,并在建立与数据库的对应关系时增加数据转换器;所述服务初始化代码用于增加密钥服务器连接服务,用于将配置文件中的加密密钥解密为实际可使用的明文密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111643067.3A CN114491580B (zh) | 2021-12-30 | 2021-12-30 | 一种数据库敏感信息加密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111643067.3A CN114491580B (zh) | 2021-12-30 | 2021-12-30 | 一种数据库敏感信息加密方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114491580A CN114491580A (zh) | 2022-05-13 |
CN114491580B true CN114491580B (zh) | 2022-10-04 |
Family
ID=81497282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111643067.3A Active CN114491580B (zh) | 2021-12-30 | 2021-12-30 | 一种数据库敏感信息加密方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114491580B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245513A (zh) * | 2019-06-24 | 2019-09-17 | 长沙曙通信息科技有限公司 | 一种数据库加密设计 |
CN110427779A (zh) * | 2019-08-13 | 2019-11-08 | 威富通科技有限公司 | 一种数据库表字段的加、解密方法及数据服务器 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7904732B2 (en) * | 2006-09-27 | 2011-03-08 | Rocket Software, Inc. | Encrypting and decrypting database records |
JP2009232333A (ja) * | 2008-03-25 | 2009-10-08 | Fujitsu Ltd | 画像暗号化装置および画像復号化装置 |
CN101504706B (zh) * | 2009-03-03 | 2011-05-11 | 中国科学院软件研究所 | 数据库信息加密方法和系统 |
CN102855448B (zh) * | 2012-08-10 | 2016-02-10 | 深圳市黎明网络系统有限公司 | 一种字段级数据库加密装置 |
CN107291926B (zh) * | 2017-06-29 | 2020-08-18 | 搜易贷(北京)金融信息服务有限公司 | 一种binlog分析方法 |
US10783270B2 (en) * | 2018-08-30 | 2020-09-22 | Netskope, Inc. | Methods and systems for securing and retrieving sensitive data using indexable databases |
CN112597480B (zh) * | 2020-12-28 | 2022-06-14 | 北京炼石网络技术有限公司 | 一种可扩展的格式保留加密方法的实现方式 |
-
2021
- 2021-12-30 CN CN202111643067.3A patent/CN114491580B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245513A (zh) * | 2019-06-24 | 2019-09-17 | 长沙曙通信息科技有限公司 | 一种数据库加密设计 |
CN110427779A (zh) * | 2019-08-13 | 2019-11-08 | 威富通科技有限公司 | 一种数据库表字段的加、解密方法及数据服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN114491580A (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109583217B (zh) | 一种互联网电商平台用户隐私数据加密及解密方法 | |
US8417640B2 (en) | Secure license key method and system | |
US7929692B2 (en) | Firmware encrypting and decrypting method and an apparatus using the same | |
US8117661B2 (en) | Encryption based silicon IP protection | |
CN111159053A (zh) | 一种测试方法、装置及存储介质 | |
CN114547558B (zh) | 授权方法、授权控制方法及装置、设备和介质 | |
CN108196851A (zh) | 应用发布方法及装置 | |
US20130066954A1 (en) | Computer software analysis system, client computer, method of controlling operation of same and operation program therefor | |
CA2565508C (en) | Secure license key method and system | |
CN105653902B (zh) | 软件注册方法和装置,注册码生成方法和装置 | |
CN113553629A (zh) | 一种硬件的授权方法及系统 | |
CN102799815A (zh) | 一种安全加载程序库的方法和装置 | |
CN115525916A (zh) | 一种数据库加密方法、装置、电子设备及存储介质 | |
US8131787B2 (en) | Information, transformation and reverse transformation processing | |
CN110287208A (zh) | 数据库字段加密的方法和装置、存储介质 | |
CN114491580B (zh) | 一种数据库敏感信息加密方法及装置 | |
CN115168873B (zh) | 基于c++语言的软件防破解方法 | |
JP2013045277A (ja) | プログラム難読化方法およびリモートデバッグシステム | |
CN112311536B (zh) | 密钥分级管理方法及系统 | |
CN110737910B (zh) | 一种Android log解密管理方法、装置、设备和介质 | |
CN113076548A (zh) | 机器人自动化流程账户信息处理方法及装置 | |
JP2021118444A (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN112333150A (zh) | 一种数据解密方法、装置、存储介质及计算设备 | |
CN111737960A (zh) | 一种磁卡数据的处理方法及系统 | |
CN116680670B (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 |