CN107085690A - 加密方法、解密方法及装置 - Google Patents
加密方法、解密方法及装置 Download PDFInfo
- Publication number
- CN107085690A CN107085690A CN201710288341.7A CN201710288341A CN107085690A CN 107085690 A CN107085690 A CN 107085690A CN 201710288341 A CN201710288341 A CN 201710288341A CN 107085690 A CN107085690 A CN 107085690A
- Authority
- CN
- China
- Prior art keywords
- data
- tables
- encrypted
- encryption
- database
- 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
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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 Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种加密方法、解密方法及装置,应用于包括秘钥表和至少一个数据表的数据库。加密方法包括:针对每个待加密数据,获取用于存储该待加密数据的目标数据表的身份信息;在所述秘钥表中查找出与所述目标数据表的身份信息对应的秘钥信息;将查找出的秘钥信息作为所述待加密数据的加密秘钥,对所述待加密数据进行加密;将加密后的所述待加密数据存储至所述目标数据表。如此,能够对数据库中存储的内容进行加密,并且对不同的数据表采用的不同的加密秘钥,增强了数据的安全性。
Description
技术领域
本发明涉及数据库技术领域,具体而言,涉及一种加密方法、解密方法及装置。
背景技术
目前,随着软件开发技术的成熟以及移动设备的发展,通常在软件程序中会使用到很多数据,同时为了保障数据存储和查询的规则,通常都是使用数据库来存储数据。在实际应用中,通常数据库会生成一个数据库文件,存储到数据库中的数据都会写入该数据库文件中,读取数据实际上也是从该数据库文件中读取数据。该数据库文件会随着应用程序一起发布到用户的设备上,因此,第三方或者HACK能够轻易地获取到该数据库文件。
然而,现有的数据库加密方法,通常只是对数据库的数据库文件进行加密,第三方或者HACK在获取到数据库文件后,只需对数据库文件进行解密,即可读取数据库中的内容,安全性较低,无法满足用户需求。
发明内容
有鉴于此,本发明的目的在于提供一种加密方法、解密方法及装置,以改善上述问题。
为了达到上述目的,本发明较佳实施例提供一种加密方法,应用于包括秘钥表和至少一个数据表的数据库,所述秘钥表中记录有所述数据表的身份信息、秘钥信息以及所述数据表的身份信息与秘钥信息之间的对应关系;所述方法包括:
针对每个待加密数据,获取用于存储该待加密数据的目标数据表的身份信息;
在所述秘钥表中查找出与所述目标数据表的身份信息对应的秘钥信息;
将查找出的秘钥信息作为所述待加密数据的加密秘钥,对所述待加密数据进行加密;
将加密后的所述待加密数据存储至所述目标数据表。
优选地,在上述加密方法中,所述待加密数据通过以下步骤获得:
针对每个待写入数据,获取该待写入数据在数据表中对应的字段;
判断该待写入数据在数据表中对应的字段是否为需要加密的字段,所述数据库中记录有需要加密的字段;
在该待写入数据在数据表中对应的字段为需要加密的字段时,将该待写入数据作为所述待加密数据。
优选地,在上述加密方法中,所述数据库包括数据库文件,所述数据库文件中存储有写入所述数据库中的全部数据;所述方法还包括:
读取所述数据库文件中的全部数据;
对读取到的数据进行加密;
将加密后的数据写入所述数据库文件。
本发明较佳实施例还提供一种解密方法,用于对本发明提供的加密方法加密后的数据库进行解密,所述方法包括:
针对每个待解密数据,获取该待解密数据所在数据表的身份信息;
在秘钥表中查找出与该待解密数据所在数据表的身份信息对应的秘钥信息;
将查找出的秘钥信息作为解密秘钥,对该待解密数据进行解密。
优选地,在上述解密方法中,所述待解密数据通过以下步骤获得:
针对每个待读取数据,获取该待读取数据在数据表中对应的字段;
判断该待读取数据在数据表中对应的字段是否为需要加密的字段;
在该待读取数据在数据表中对应的字段为需要加密的字段时,将该待读取数据作为所述待解密数据。
本发明较佳实施例还提供一种加密装置,应用于包括秘钥表和至少一个数据表的数据库,所述秘钥表中记录有所述数据表的身份信息、秘钥信息以及所述数据表的身份信息与秘钥信息之间的对应关系;所述加密装置包括:
第一数据表身份获取模块,用于针对每个待加密数据,获取用于存储该待加密数据的目标数据表的身份信息;
第一秘钥信息查找模块,用于在所述秘钥表中查找出与所述目标数据表的身份信息对应的秘钥信息;
加密模块,用于将查找出的秘钥信息作为所述待加密数据的加密秘钥,对所述待加密数据进行加密;
存储模块,用于将加密后的所述待加密数据存储至所述目标数据表。
优选地,在上述加密装置中,所述装置还包括待加密数据获取模块,所述待加密数据获取模块包括:
第一字段获取子模块,用于针对每个待写入数据,获取该待写入数据在数据表中对应的字段;
第一判断子模块,用于判断该待写入数据在数据表中对应的字段是否为需要加密的字段,所述数据库中记录有需要加密的字段;
待加密数据确定子模块,用于在该待写入数据在数据表中对应的字段为需要加密的字段时,将该待写入数据作为所述待加密数据。
优选地,在上述加密装置中,所述数据库包括数据库文件,所述数据库文件中存储有写入所述数据库中的全部数据;所述加密装置还包括:
数据库文件读取模块,用于读取所述数据库文件中的全部数据;
数据库文件加密模块,用于对读取到的数据进行加密;
数据写入模块,用于将加密后的数据写入所述数据库文件。
本发明较佳实施例还提供一种解密装置,用于本发明提供加密装置加密后的数据库进行解密,所述解密装置包括:
第二数据表身份获取模块,用于针对每个待解密数据,获取该待解密数据所在数据表的身份信息;
第二秘钥信息查找模块,用于在秘钥表中查找出与该待解密数据所在数据表的身份信息对应的秘钥信息;
解密模块,用于将查找出的秘钥信息作为解密秘钥,对该待解密数据进行解密。
优选地,在上述解密装置中,所述解密装置还包括待解密数据获取模块,所述待解密数据获取模块包括:
第二字段获取子模块,用于针对每个待读取数据,获取该待读取数据在数据表中对应的字段;
第二判断子模块,用于判断该待读取数据在数据表中对应的字段是否为需要加密的字段;
待解密数据确定子模块,用于在该待读取数据在数据表中对应的字段为需要加密的字段时,将该待读取数据作为所述待解密数据。
本发明实施例提供的加密方法、解密方法及装置,在数据库中增设存储秘钥信息的秘钥表,秘钥表中存储有秘钥信息、数据表的身份信息及两者之间的对应关系。在写入待加密数据前,根据目标数据表的身份信息查找到对应秘钥信息对待加密数据进行加密,如此,可实现对每个数据表中的待加密数据采用不同的秘钥进行加密,实现了对数据库内容的保护,增强了数据的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种电子设备的方框示意图。
图2为本发明实施例提供的一种加密方法的流程示意图。
图3为本发明实施例提供的获得待加密数据的子步骤示意图。
图4为本发明实施例提供的加密方法的又一流程示意图。
图5为本发明实施例提供的一种解密方法的流程示意图。
图6为本发明实施例提供的获得待解密数据的子步骤示意图。
图7为本发明实施例提供的一种加密装置的功能模块框图。
图8为本发明实施例提供的一种待加密数据获取模块的子模块框图。
图9为本发明实施例提供的加密装置的又一功能模块框图。
图10为本发明实施例提供的一种解密装置的功能模块框图。
图11为本发明实施例提供的待解密数据获取模块的子模块框图。
图标:100-电子设备;110-存储器;120-处理器;200-加密装置;210-第一数据表身份获取模块;220-第一秘钥信息查找模块;230-加密模块;240-存储模块;250-待加密数据获取模块;251-第一字段获取子模块;252-第一判断子模块;253-待加密数据确定子模块;260-数据库文件读取模块;270-数据库文件加密模块;280-数据写入模块;300-解密装置;310-第二数据表身份获取模块;320-第二秘钥信息查找模块;330-解密模块;340-待解密数据获取模块;341-第二字段获取子模块;342-第二判断子模块;343-待解密数据确定子模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
如图1所示,是本发明实施例提供的一种电子设备100的方框示意图。所述电子设备100中存储有包括秘钥表和至少一个数据表的数据库,本发明实施例提供的加密方法及解密方法应用于该数据库。
在本实施例中,所述电子设备100可以是具有数据处理功能及存储功能的任意设备(如,计算机、服务器等),本实施例对此不做限制。所述电子设备100包括加密装置200、解密装置300、存储器110及处理器120。
所述存储器110及处理器120各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述加密装置200与解密装置300包括至少一个可以软件或固件(firmware)形式存储于所述存储器110中或固化在所述电子设备100的操作系统(operating system,OS)中的软件功能模块。所述处理器120用于执行所述存储器110中存储的可执行模块,例如所述加密装置200与解密装置300所包括的软件功能模块及计算机程序等。
其中,所述存储器110可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。
所述处理器120可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP))、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
应当理解,图1所示的结构仅为示意。所述电子设备100还可以包括比图1所示更多或者更少的组件,或者具有与图1所示不同的配置,本实施例对此不做限制。
本发明较佳实施例提供一种加密方法,所述加密方法应用于电子设备100中存储的数据库,所述数据库中包括秘钥表和至少一个数据表,所述数据表中记录有所述数据表的身份信息、秘钥信息及所述数据表的身份信息和秘钥信息之间的对应关系。其中,数据表的身份信息可以包括,但不限于,该数据表的ID和名称。
在本实施例中,所述数据库中可以包括一个数据表、两个数据表或多个数据表,本实施例对此不做限制。对应地,所述秘钥表中存储的秘钥信息也可以为一个、两个或者多个。所述数据表的数量和秘钥信息的数量可以相互对应,也即,每个数据表都存在一个用于对该数据表中的数据进行加密的秘钥信息。
如图2所示,是本发明较佳实施例提供的一种加密方法的流程示意图。下面将结合图2对所述加密方法的具体流程及步骤进行详细阐述。
步骤S101:针对每个待加密数据,获取用于存储该待加密数据的目标数据表的身份信息。
在本实施例中,待加密数据是指在写入数据库之前需要进行加密的数据。在实际应用中,每个待写入数据都会被写入到数据库中的某一数据表中的某一字段。同样地,每个待加密数据也会被写入到数据库中的某一数据表中的某一字段,该数据表即为用于存储该待加密数据的目标数据表,该字段即为该待加密数据在数据表中对应的字段。
步骤S102:在所述秘钥表中查找出与所述目标数据表的身份信息对应的秘钥信息。
在本实施例中,所述秘钥表内存储有数据库中的各数据表的身份信息以及用于对各数据表中的数据进行加密的秘钥信息,两者之间对应存储。如此,根据目标数据表的身份信息即可查找到用于该数据表中的待加密数据进行加密的秘钥。
在本实施例中,不同数据表中的待加密数据所使用的加密秘钥不同,如此,即便第三方或HACK对某一数据表进行了解密,也无法读取到其他数据表中的数据,可以提高数据的安全性。
步骤S103:将查找出的秘钥信息作为所述待加密数据的加密秘钥,对所述待加密数据进行加密。
在本实施例中,可以调用加密算法的接口,将查找出的秘钥信息作为所述待加密数据的加密秘钥,对所述待加密数据进行加密。以TEA加密算法为例,通过以下代码即可实现待加密数据data的加密。
Encrypt_data=TEA.encrypt(data,key);
其中,Encrypt_data为待加密数据data加密后的结果,TEA算法的加密接口为TEA.encrypt(),key是从秘钥表中查找出的秘钥信息。
需要说明的是,本实施例中,对待加密数据进行加密可以采用的加密算法有多种,例如TEA加密算法、IDEA算法等,本实施例不做限制。
在各加密算法中,有的加密算法使用的加密秘钥和解密秘钥相同,例如TEA算法。有的加密算法使用的加密秘钥和解密秘钥不同,例如各种非对称式加密算法。针对加密秘钥和解密秘钥不同的算法,可以在数据库中存储两个秘钥表,分别用于存储加密的秘钥信息和解密的秘钥信息,进行加密时,在存储有加密秘钥信息的秘钥表中进行查找,具体的查找方式与上述过程相同,此处不再赘述。
步骤S104:将加密后的所述待加密数据存储至所述目标数据表。
在完成加密后,可通过数据库的sqlite指令将加密后的待加密数据写入到目标数据表中。假设目标数据表的名称为userdata,该待加密数据data与userdata数据表中的encrypteddata字段相对应,则可以通过以下代码将加密后的结果Encrypt_data存入userdata数据表。
INSERT INT0userdata(encrypteddata)
VALUES(’Encrypt_data’)
可选地,在本实施例中,可以对所有的待写入数据进行加密,也即,所有的待写入数据可以都是待加密数据。也可以只对各待写入数据中的部分比较重要或敏感的待写入数据进行加密,例如,密码。
所述数据库中可以预先存储有重要信息或敏感信息在数据表中对应的字段,也即,所述数据表中可以预存有需要加密的字段。如此,可以通过待写入数据在数据表中对应的字段是否为需要加密的字段来确定该待写入数据是否需要加密。
可选地,在本实施例中,可通过图3所示的步骤确定待写入数据是否为待加密数据。
步骤S201:针对每个待写入数据,获取该待写入数据在数据表中对应的字段。
步骤S202:判断该待写入数据在数据表中对应的字段是否为需要加密的字段,所述数据库中记录有需要加密的字段。
步骤S203:在该待写入数据在数据表中对应的字段为需要加密的字段时,将该待写入数据作为所述待加密数据。
在本实施例中,所述数据库中预存的需要加密的字段可以根据实际需求进行调整,本实施例对此不做限制。
通过上述设计,可以采用不同的秘钥信息对数据库中的各数据表进行加密,并且可以只对各数据表中需要加密的字段对应的信息进行加密。可选地,在这一层加密的基础上,可以再对整个数据库进行一次加密,实现双重保护,增加数据安全性。
根据实际情况,数据库通常会生成一个独立的数据库文件,经发明人研究发现,存储到数据库中的数据都会写入到该数据库文件中,在数据库中读取数据实际上也是从该数据库文件中读取数据。
实际应用中,需要访问数据库中存储的数据,既可以通过数据库指令进行访问,也可以直接打开该数据库文件获取。若数据库文件被加密,在不解密的情况下,既无法通过数据库指令读取数据库中的数据,也无法直接通过该数据库文件读取数据库中的数据。
可选地,如图4所示,所述加密方法还可以包括步骤S105、步骤S106以及步骤S107三个步骤。
步骤S105:读取所述数据库文件中的全部数据。
在本实施例中,可以调用系统库函数fopen打开所述数据库文件,可以通过以下代码实现。
FILE*file=(“xx”,“rb”);
fseek(file,0,SEEK_END);
uint filesize=ftell(file);
fread(buf,filesize,1,file);
fcolse(file)
其中,“xx”是该数据库文件的名称,“rb”表示只读该数据库文件,并且读取的是二进制数据。fseek(file,0,SEEK_END)指令是用于将文件指针移动到文件尾部,ftell(file)指令获取文件的大小,并把文件的大小赋予变量filesize。fread指令用于将整个数据库文件读取到内存中,并缓存在buf内。fclose指令用于关闭该数据库文件。
步骤S106:对读取到的数据进行加密。
本实施例中,在将数据库文件中的全部数据缓存至buf中后,可采用与上述步骤中使用的加密算法不同的加密算法对缓存在buf中的数据进行加密。可选地,此处使用的加密算法可以比上述方法步骤中使用的加密算法更为复杂,例如DES算法、AES算法等。
以DES算法为例,对缓存至buf中的数据进行加密可通过以下代码实现。
DES.encrypt(buf,filesize,key)。
其中,DES.encrypt()是DES算法的加密接口,buf是读取的数据库文件的内容,filesize是数据库文件的大小,key是加密使用的秘钥,可以根据实际情况进行设置,也可以是随机的一个字符串,本实施例对此不做限制。
步骤S107:将加密后的数据写入所述数据库文件。
在本实施例中,可以使用fopen函数将加密后的文件内容写入到数据库文件中,具体可通过以下代码实现。
FILE*file=fopen(“xx”,“wb”);
fwrite(buf,filesize,file);
fclose(file)
上述指令中,fopen(“xx”,“wb”)用于打开数据库文件xx,其中,“wb”表示只写,并且写入的是二进制数据。fwrite(buf,filesize,file)指令用于将buf中加密后的文件内容写入到数据库文件xx中。
通过上述步骤,实现了对数据库的双重加密,提高了数据读取的门槛,进一步增加了数据的安全性。
如图5所示,本发明较佳实施例还提供一种解密方法,用于对上述加密方法加密后的数据库进行解密。下面将结合图5对所述解密方法的具体流程和步骤进行详细阐述。
步骤S301:针对每个待解密数据,获取该待解密数据所在数据表的身份信息。
在本实施例中,所述待解密数据是指从数据库中读取出的经过加密的数据。
步骤S302:在秘钥表中查找出与该待解密数据所在数据表的身份信息对应的秘钥信息。
步骤S303:将查找出的秘钥信息作为解密秘钥,对该带解密数据进行解密。
在本实施例中,假设存在待加密数据X1,采用图2所示方法对该待加密数据X1加密后得到数据X2,并将数据X2存储至目标数据表Y中。
因而,在读取数据时,读取出数据X2后,需要对数据X2进行解密。并且,根据上述对图2所示加密方法的描述可知,图2所示方法是采用秘钥表中与目标数据表Y的身份信息对应的秘钥信息对待加密数据X1进行加密,解密时,应当先获取存储该待解密数据的数据表的身份信息,并依据该数据表的身份信息找到对应的秘钥信息作为解密秘钥,采用与加密算法对应的解密算法进行解密。
假设待解密数据data在加密阶段采用算法TEA进行加密,对应地,解密阶段也应采取TEA进行解密。采用TEA算法对加密后的数据Encrypt_data进行解密可通过以下代码实现。
data=TEA.decrypt(Encrypt_data,key)
其中,TEA.decrypt()是TEA算法的解密接口,data是原始数据。
需要说明的是,在本实施例中,,根据所选算法的不同,加密秘钥和解密秘钥可能不同。例如,当所选算法为非对称式算法时,加密秘钥和解密秘钥不同。此时,数据库中可包括两个秘钥表,分别为加密秘钥表和解密秘钥表,加密时在加密秘钥表中查找对应的秘钥信息作为加密秘钥,解密时在解密秘钥表中查找对应的秘钥信息作为解密秘钥。
还需要说明的是,在本实施例中,图5所示解密方法对应于图1所示的加密方法。
根据上述内容中对加密方法的描述可知,在本实施例中,所述加密方法可以对所有的待写入数据进行加密,在这一情形下,从数据库中读取出来的所有数据均经过加密,因而,每个待解密数据都需要进行解密。所述加密方法也可以用于对各待加密数据中的比较重要或敏感的部分待加密数据进行加密。所述数据库中可以存储有比较重要或敏感的数据对应的字段,也即,所述数据库中可以存储有需要加密的字段。
需要说明的是,在本实施例中,图5所示的解密方法对应于图3所示的加密方法。
可选地,可以通过图6所示的步骤确定待读取数据是否为待解密数据。
步骤S401:针对每个待读取数据,获取该待读取数据在数据表中对应的字段。
在本实施例中,假设待读取数据在数据表中对应的字段为A,则该待读取数据存储在数据表中的字段A。
步骤S402:判断该待读取数据在数据表中对应的字段是否为需要加密的字段。
步骤S403:在该待读取数据在数据表中对应的字段为需要加密的字段时,将该待读取数据作为待解密数据。
根据上述内容中对加密方法的描述可知,若待写入数据在数据表中对应的字段为数据库中记录的需要加密的字段,则在存储该待写入数据之前,会对该待写入数据进行加密。相应地,在读取出需要加密的字段对应的数据后,需要对读取出的数据进行解密。
实施时,通过查找数据库中存储的需要加密的字段中是否存在该待读取数据在数据表中对应的字段,即可知道该待读取数据在数据表中对应的字段是否为需要加密的字段。
当数据库中存储的需要加密的字段中包括该待读取数据在数据表中对应的字段时,该待读取数据在数据表中对应的字段为需要进行加密的字段,也即,在读取出该待读取数据后需要对该待读取进行解密。当数据库中存储的需要加密的字段中不包括该待读取数据在数据表中对应的字段时,该待读取数据在数据表中对应的字段不是需要加密的字段,也即,在读取出该待读取数据后,不需要对该待读取数据进行解密。
可选地,在本实施例中,若加密阶段对数据库的数据库文件进行了加密,则在需要对数据库文件进行操作(包括读取和写入)时,需要先读取数据库文件到内存中,然后对读取到内存中的数据进行解密,之后再对数据库中的数据进行需要的操作。
其中,对数据库文件进行解密的算法与对数据库文件进行加密的算法相对应。
如图7所示,本发明较佳实施例还提供一种加密装置200,应用于包括秘钥表和至少一个数据表的数据库,所述秘钥表中所述数据表的身份信息、秘钥信息以及所述数据表的身份信息与秘钥信息之间的对应关系。
所述装置包括第一数据表身份获取模块210、第一秘钥信息查找模块220、加密模块230及存储模块240。
其中,所述第一数据表身份获取模块210用于针对每个待加密数据,获取用于存储该待加密数据的目标数据表的身份信息。在本实施例中,关于所述第一数据表身份获取模块210的描述具体可参考对图2所示的步骤S101的详细描述,也即,所述步骤S101可以由所述第一数据表身份获取模块210执行。
所述第一秘钥信息查找模块220用于在所述秘钥表中查找出与所述目标数据表的身份信息对应的秘钥信息。在本实施例中,关于所述第一秘钥信息查找模块220的描述具体可参考对图2所示的步骤S102的详细描述,也即,所述步骤S102可以由所述第一秘钥信息查找模块220执行。
所述加密模块230用于将查找出的秘钥信息作为所述待加密数据的加密秘钥,对所述待加密数据进行加密。在本实施例中,关于所述加密模块230的描述具体可参考对图2所示步骤S103的详细描述,也即,所述步骤S103可以由所述加密模块230执行。
所述存储模块240用于将加密后的所述待加密数据存储至所述目标数据表。在本实施例中,关于所述存储模块240的描述具体可参考对图2所示步骤S104的详细描述,也即,所述步骤S104可以由所述存储模块240执行。
在本实施例中,可选地,所述加密装置200还可以包括如图8所示的待加密数据获取模块250,所述待加密数据获取模块250可以包括第一字段获取子模块251、第一判断子模块252、待加密数据确定子模块253。
其中,所述第一字段获取子模块251用于针对每个待写入数据,获取该待写入数据在数据表中对应的字段。在本实施例中,关于所述第一字段获取子模块251的描述具体可参考对图3所示的步骤S201的详细描述,也即,所述步骤S201可以由所述第一字段获取子模块251执行。
所述第一判断子模块252用于判断该待写入数据在数据表中对应的字段是否为需要加密的字段,所述数据库中记录有需要加密的字段。在本实施例中,关于所述第一判断子模块252的描述具体可参考对图3所示步骤S202的详细描述,也即,所述步骤S202可以由所述第一判断子模块252执行。
所述待加密数据确定子模块253用于在该待写入数据在数据表中对应的字段为需要加密的字段时,将该待写入数据作为所述待加密数据。在本实施例中,关于所述待加密数据确定子模块253的描述具体可参考对图3所示的步骤S203的详细描述,也即,所述步骤S203可以由所述待加密数据确定子模块253执行。
所述数据库包括数据库文件,所述数据库文件中存储有写入所述数据库中的全部数据。如图9所示,所述加密装置200还可以包括数据库文件读取模块260、数据库文件加密模块270和数据写入模块280。
其中,所述数据库文件读取模块260用于读取所述数据库文件中的全部数据。在本实施例中,关于所述数据库文件读取模块260的描述具体可参考对图4中所示的步骤S105的详细描述,也即,所述步骤S105可以由所述数据库文件读取模块260执行。
所述数据库文件加密模块270用于对读取到的数据进行加密。在本实施例中,关于所述数据库文件模块的描述具体可参考对图4中所示的步骤S106的详细描述,也即,所述步骤S106可以由所述数据库文件加密模块270执行。
所述数据写入模块280用于将加密后的数据写入所述数据库文件。在本实施例中,关于所述数据写入模块280的描述具体可参考对图4中所示的步骤S107的详细描述,也即,所述步骤S107可以由所述数据写入模块280执行。
本发明较佳实施例还提供一种解密装置300,用于对本发明实施例提供的加密装置200加密后的数据库进行解密。如图10所示,所述解密装置300包括第二数据表身份获取模块310、第二秘钥信息查找模块320以及解密模块330。
其中,所述第二数据表身份获取模块310用于针对每个待解密数据,获取该待解密数据所在数据表的身份信息。在本实施例中,关于所述第二数据表身份获取模块310的描述具体可参考对图5所示的步骤S301的详细描述,也即,所述步骤S301可以由所述第二数据表身份获取模块310执行。
所述第二秘钥信息查找模块320用于在秘钥表中查找出与该待解密数据所在数据表的身份信息对应底面要信息。在本实施例中,关于所述第二秘钥信息查找模块320的描述具体可参考对图5中所示的步骤S302的详细描述,也即,所述步骤S302可以由所述第二秘钥信息查找模块320执行。
所述解密模块330用于将查找出的秘钥信息作为解密秘钥,对该待解密数据进行解密。在本实施例中,关于所述解密模块330的描述具体可参考对图5中所示的步骤S303的详细描述,也即,所述步骤S303可以由所述解密模块330执行。
如图11所示,所述解密装置300还可以包括待解密数据获取模块340,所述待解密数据获取模块340可以包括第二字段获取子模块341、第二判断子模块342以及待解密数据确定子模块343。
其中,所述第二字段获取子模块341用于针对每个待读取数据,获取该带读取数据在数据表中对应的字段。在本实施例中,关于所述第二字段获取子模块341的描述具体可参考对图6中所示的步骤S401的详细描述,也即,所述步骤S401可以由所述第二字段获取子模块341执行。
所述第二判断子模块342用于判断该待读取数据在数据表中对应的字段是否为需要加密的字段。在本实施例中,关于所述第二判断子模块342的描述具体可参考对图6中所示的步骤S402的详细描述,也即,所述步骤S402可以由所述第二判断子模块342执行。
所述待解密数据确定子模块343用于在该待读取数据在数据表中对应的字段为需要加密的字段时,将该待读取数据作为所述待解密数据。在本实施例中,关于所述待解密数据确定子模块343的描述具体可参考对图6中所示的步骤S403的详细描述,也即,所述步骤S403可以由所述待解密数据确定子模块343执行。
综上所述,本发明实施例提供的加密方法、解密方法及装置,在数据库中增设存储秘钥信息的秘钥表,秘钥表中存储有秘钥信息、数据表的身份信息及两者之间的对应关系。在写入待加密数据前,根据目标数据表的身份信息查找到对应秘钥信息对待加密数据进行加密,如此,可实现对每个数据表中的待加密数据采用不同的秘钥进行加密,实现了对数据库内容的保护,增强了数据的安全性。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种加密方法,其特征在于,应用于包括秘钥表和至少一个数据表的数据库,所述秘钥表中记录有所述数据表的身份信息、秘钥信息以及所述数据表的身份信息与秘钥信息之间的对应关系;所述方法包括:
针对每个待加密数据,获取用于存储该待加密数据的目标数据表的身份信息;
在所述秘钥表中查找出与所述目标数据表的身份信息对应的秘钥信息;
将查找出的秘钥信息作为所述待加密数据的加密秘钥,对所述待加密数据进行加密;
将加密后的所述待加密数据存储至所述目标数据表。
2.根据权利要求1所述的加密方法,其特征在于,所述待加密数据通过以下步骤获得:
针对每个待写入数据,获取该待写入数据在数据表中对应的字段;
判断该待写入数据在数据表中对应的字段是否为需要加密的字段,所述数据库中记录有需要加密的字段;
在该待写入数据在数据表中对应的字段为需要加密的字段时,将该待写入数据作为所述待加密数据。
3.根据权利要求1或2所述的加密方法,其特征在于,所述数据库包括数据库文件,所述数据库文件中存储有写入所述数据库中的全部数据;所述方法还包括:
读取所述数据库文件中的全部数据;
对读取到的数据进行加密;
将加密后的数据写入所述数据库文件。
4.一种解密方法,其特征在于,用于对权利要求1所述的方法加密后的数据库进行解密,所述方法包括:
针对每个待解密数据,获取该待解密数据所在数据表的身份信息;
在秘钥表中查找出与该待解密数据所在数据表的身份信息对应的秘钥信息;
将查找出的秘钥信息作为解密秘钥,对该待解密数据进行解密。
5.根据权利要求4所述的解密方法,其特征在于,所述待解密数据通过以下步骤获得:
针对每个待读取数据,获取该待读取数据在数据表中对应的字段;
判断该待读取数据在数据表中对应的字段是否为需要加密的字段;
在该待读取数据在数据表中对应的字段为需要加密的字段时,将该待读取数据作为所述待解密数据。
6.一种加密装置,其特征在于,应用于包括秘钥表和至少一个数据表的数据库,所述秘钥表中记录有所述数据表的身份信息、秘钥信息以及所述数据表的身份信息与秘钥信息之间的对应关系;所述加密装置包括:
第一数据表身份获取模块,用于针对每个待加密数据,获取用于存储该待加密数据的目标数据表的身份信息;
第一秘钥信息查找模块,用于在所述秘钥表中查找出与所述目标数据表的身份信息对应的秘钥信息;
加密模块,用于将查找出的秘钥信息作为所述待加密数据的加密秘钥,对所述待加密数据进行加密;
存储模块,用于将加密后的所述待加密数据存储至所述目标数据表。
7.根据权利要求6所述的加密装置,其特征在于,所述装置还包括待加密数据获取模块,所述待加密数据获取模块包括:
第一字段获取子模块,用于针对每个待写入数据,获取该待写入数据在数据表中对应的字段;
第一判断子模块,用于判断该待写入数据在数据表中对应的字段是否为需要加密的字段,所述数据库中记录有需要加密的字段;
待加密数据确定子模块,用于在该待写入数据在数据表中对应的字段为需要加密的字段时,将该待写入数据作为所述待加密数据。
8.根据权利要求6或7所述的加密装置,其特征在于,所述数据库包括数据库文件,所述数据库文件中存储有写入所述数据库中的全部数据;所述加密装置还包括:
数据库文件读取模块,用于读取所述数据库文件中的全部数据;
数据库文件加密模块,用于对读取到的数据进行加密;
数据写入模块,用于将加密后的数据写入所述数据库文件。
9.一种解密装置,其特征在于,用于对权利要求6所述的装置加密后的数据库进行解密,所述解密装置包括:
第二数据表身份获取模块,用于针对每个待解密数据,获取该待解密数据所在数据表的身份信息;
第二秘钥信息查找模块,用于在秘钥表中查找出与该待解密数据所在数据表的身份信息对应的秘钥信息;
解密模块,用于将查找出的秘钥信息作为解密秘钥,对该待解密数据进行解密。
10.根据权利要求9所述的解密装置,其特征在于,所述解密装置还包括待解密数据获取模块,所述待解密数据获取模块包括:
第二字段获取子模块,用于针对每个待读取数据,获取该待读取数据在数据表中对应的字段;
第二判断子模块,用于判断该待读取数据在数据表中对应的字段是否为需要加密的字段;
待解密数据确定子模块,用于在该待读取数据在数据表中对应的字段为需要加密的字段时,将该待读取数据作为所述待解密数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710288341.7A CN107085690A (zh) | 2017-04-27 | 2017-04-27 | 加密方法、解密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710288341.7A CN107085690A (zh) | 2017-04-27 | 2017-04-27 | 加密方法、解密方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107085690A true CN107085690A (zh) | 2017-08-22 |
Family
ID=59611668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710288341.7A Pending CN107085690A (zh) | 2017-04-27 | 2017-04-27 | 加密方法、解密方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107085690A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101837A (zh) * | 2018-08-10 | 2018-12-28 | 郑州云海信息技术有限公司 | 一种数据存储方法及装置 |
CN109189367A (zh) * | 2018-06-28 | 2019-01-11 | 重庆小雨点小额贷款有限公司 | 一种数据处理方法、装置、服务器及存储介质 |
CN111740958A (zh) * | 2020-05-22 | 2020-10-02 | 卓望数码技术(深圳)有限公司 | 数据加密方法、解密方法、加解密传输方法及系统 |
CN112241538A (zh) * | 2020-09-27 | 2021-01-19 | 上海连尚网络科技有限公司 | 一种用于生成加密文件的方法与设备 |
CN112257078A (zh) * | 2020-12-21 | 2021-01-22 | 江苏荣泽信息科技股份有限公司 | 一种基于tee技术的区块链加解密服务安全可信系统 |
CN112468494A (zh) * | 2020-11-26 | 2021-03-09 | 湖北航天信息技术有限公司 | 一种内外网互联网数据传输方法及装置 |
CN114697142A (zh) * | 2022-06-01 | 2022-07-01 | 浙江大学 | 一种通信数据加密方法及装置、电子设备、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1318196A (zh) * | 1999-05-28 | 2001-10-17 | 松下电器产业株式会社 | 半导体存储器卡、播放装置、记录装置、播放方法、记录方法、和计算机可读记录介质 |
CN1959830A (zh) * | 2005-10-31 | 2007-05-09 | 株式会社东芝 | 信息再现设备和方法 |
CN101309138A (zh) * | 2007-05-14 | 2008-11-19 | 三星电子株式会社 | 用于处理器的基于加密的安全保护方法及其设备 |
-
2017
- 2017-04-27 CN CN201710288341.7A patent/CN107085690A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1318196A (zh) * | 1999-05-28 | 2001-10-17 | 松下电器产业株式会社 | 半导体存储器卡、播放装置、记录装置、播放方法、记录方法、和计算机可读记录介质 |
CN1959830A (zh) * | 2005-10-31 | 2007-05-09 | 株式会社东芝 | 信息再现设备和方法 |
CN101309138A (zh) * | 2007-05-14 | 2008-11-19 | 三星电子株式会社 | 用于处理器的基于加密的安全保护方法及其设备 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189367A (zh) * | 2018-06-28 | 2019-01-11 | 重庆小雨点小额贷款有限公司 | 一种数据处理方法、装置、服务器及存储介质 |
CN109189367B (zh) * | 2018-06-28 | 2022-06-24 | 重庆小雨点小额贷款有限公司 | 一种数据处理方法、装置、服务器及存储介质 |
CN109101837A (zh) * | 2018-08-10 | 2018-12-28 | 郑州云海信息技术有限公司 | 一种数据存储方法及装置 |
CN109101837B (zh) * | 2018-08-10 | 2020-09-15 | 苏州浪潮智能科技有限公司 | 一种数据存储方法及装置 |
CN111740958A (zh) * | 2020-05-22 | 2020-10-02 | 卓望数码技术(深圳)有限公司 | 数据加密方法、解密方法、加解密传输方法及系统 |
CN112241538A (zh) * | 2020-09-27 | 2021-01-19 | 上海连尚网络科技有限公司 | 一种用于生成加密文件的方法与设备 |
CN112468494A (zh) * | 2020-11-26 | 2021-03-09 | 湖北航天信息技术有限公司 | 一种内外网互联网数据传输方法及装置 |
CN112468494B (zh) * | 2020-11-26 | 2022-05-17 | 湖北航天信息技术有限公司 | 一种内外网互联网数据传输方法及装置 |
CN112257078A (zh) * | 2020-12-21 | 2021-01-22 | 江苏荣泽信息科技股份有限公司 | 一种基于tee技术的区块链加解密服务安全可信系统 |
CN114697142A (zh) * | 2022-06-01 | 2022-07-01 | 浙江大学 | 一种通信数据加密方法及装置、电子设备、存储介质 |
CN114697142B (zh) * | 2022-06-01 | 2022-09-06 | 浙江大学 | 一种通信数据加密方法及装置、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107085690A (zh) | 加密方法、解密方法及装置 | |
US9213867B2 (en) | Secure cloud database platform with encrypted database queries | |
US7849514B2 (en) | Transparent encryption and access control for mass-storage devices | |
CN106997439B (zh) | 基于TrustZone的数据加解密方法、装置及终端设备 | |
US8572372B2 (en) | Method for selectively enabling access to file systems of mobile terminals | |
US20060232826A1 (en) | Method, device, and system of selectively accessing data | |
CN107506659A (zh) | 一种基于sgx的通用数据库的数据保护系统及方法 | |
US11042652B2 (en) | Techniques for multi-domain memory encryption | |
CN112825520B (zh) | 用户隐私数据处理方法、装置、系统及存储介质 | |
CN103294961A (zh) | 一种文件加/解密方法以及文件加/解密装置 | |
Arfaoui et al. | Trusted execution environments: A look under the hood | |
KR101403626B1 (ko) | 클라우드 컴퓨팅 환경에서의 스마트 단말 통합 보안 관리 방법 | |
CN106992851A (zh) | 基于TrustZone的数据库文件口令加解密方法、装置及终端设备 | |
WO2018019134A1 (zh) | 验证码短信的处理方法及终端 | |
CN114547648A (zh) | 一种数据匿踪查询方法及系统 | |
Zhu et al. | Full Encryption: An end to end encryption mechanism in GaussDB | |
US11997191B2 (en) | System and method for protecting secret data items using multiple tiers of encryption and secure element | |
EP2827276B1 (en) | Secure data processing | |
Sarode et al. | Data Encryption Security in Mobile and Cloud Computing Environments | |
US20210240863A1 (en) | Integrated circuit configured to perform symmetric encryption operatoins with secret key protection | |
KR102005534B1 (ko) | 스마트 기기 기반의 원격 접근 제어 및 멀티 팩터 인증 시스템 | |
TW202415032A (zh) | 一種資料共用系統、方法、裝置、設備及介質 | |
Mangle et al. | A Study of Data Storage Security Issues in Cloud Computing | |
CN115705603A (zh) | 一种基于区块链网络进行交易的方法、介质及装置 | |
CN110287736A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170822 |
|
RJ01 | Rejection of invention patent application after publication |