[发明专利]一种数据库加解密方法和装置在审
申请号: | 201610345547.4 | 申请日: | 2016-05-23 |
公开(公告)号: | CN107423631A | 公开(公告)日: | 2017-12-01 |
发明(设计)人: | 王文良;马加青;董文凯;王丽雪;李佳忻 | 申请(专利权)人: | 上海神计信息系统工程有限公司 |
主分类号: | G06F21/62 | 分类号: | G06F21/62 |
代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 施浩 |
地址: | 200331 上海市普陀区*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 解密 方法 装置 | ||
技术领域
本发明涉及数据安全领域,尤其涉及SQLite数据库的加解密方法和装置。
背景技术
随着移动互联网的到来,现在的应用程序都要求不止在一个平台上使用,不仅有之前电脑桌面版本,还有现如今比较流行的手机操作系统例如IOS,Android系统,甚至也要有网页版本,对程序员开发工作带来极大的挑战,尤其是数据一致性问题,现如今比较流行使用SQLite作为多平台开发下数据库。
SQLite占用内存小,存储效率高,查询速度快,但是却没有提供有效的安全控制机制,对于有安全需求的应用迫切需要对此进行加解密。
图1示出了现有技术下SQLite数据库的加密方式,代码访问该数据库的流程如图1所示,包括如下的步骤:传入数据库路径信息,准备连接数据库字符,拼写密码,连接数据库,打开数据库。这种方式的缺点是:
1)、数据库源文件不能确定,无法保证该数据库文件是否为本软件提供的数据库,当密码被破解后,只需要拿一个密码相同的SQLite文件,就可以获取数据、修改数据。
2)、文件安全不能保证,普通的加密算法,容易被破解,对于SQLite数据库设置的密码没有唯一性,设置的密码经过异或或其他简单的操作就能看到密钥。
3)、当数据库文件很大时,每次加解密都需要较大的开销,不利较大数据级别时的存储。
发明内容
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
本发明的目的在于解决上述问题,提供了一种数据库加解密方法和装置,可以保证加载数据库文件的正确性,同时能够提升数据库的破解难度,提高加密后数据库的安全性。
本发明的技术方案为:本发明揭示了一种数据库加密方法,包括:
读取数据库的特征码,所述特征码包括:与待加密数据库对应的版本信息、版本标识、系统唯一码;
根据所述待加密数据库的特征码与加密算法计算加密密码;
密码校验正确时,将所述待加密数据库按照预设大小分成多个数据库页面,分别存储于磁盘;
所述数据库页面被单独加密和解密,所述数据库页面包含独立的随机的初始化向量且存于所述数据库页面的末尾。
根据本发明的数据库加密方法的一实施例,相同的数据库页面的初始化向量不会在后续写入时重新使用,不同的数据库页面的初始化向量不同,所述数据库页面的索引记录到所述数据库的预设位置。
根据本发明的数据库加密方法的一实施例,所述系统唯一码包括CPU序列号或芯片序列号的散列码。
根据本发明的数据库加密方法的一实施例,所述加密算法为对称加密AES。
根据本发明的数据库加密方法的一实施例,所述数据库页面的大小为512字节。
根据本发明的数据库加密方法的一实施例,所述数据库页面的随机的初始化向量进行再次加密且再次加密的算法与所述加密密码的加密算法不同。
根据本发明的数据库加密方法的一实施例,所述待加密数据库的回滚日志使用和所述待加密数据库相同的加密密码;所述待加密数据库的回滚日志包括未加密的头部信息和日志数据信息,所述头部信息不包含任何数据信息;待加密数据的预写式日志使用与所述待加密数据库相同的加密密码,所述待加密数据的预写式日志包括备份数据记录;所述待加密数据库的语句日志使用与所述待加密数据库相同的加密密码,所述待加密数据库的语句日志记录数据库操作语句;所述待加密数据库的主要日志不进行加密,所述待加密数据库的主要日志包括回滚日志的完整路径名,并对每一个数据库的事务进行记录,但记录不包括数据,其他临时文件不加密。
本发明还揭示了一种数据库解密方法,其特征在于,包括:
从待解密的数据库中读取特征码,经过二次加密算法得到密钥,从而获得所述待解密的数据库的解密密码;
根据索引获取所需的数据库页面,通过所述数据库页面末尾的初始化向量对待解密的数据库页面进行解密,获得明文数据。
根据本发明的数据库解密方法的一实施例,在读取待解密的数据库的特征码之前,还包括获取待解密的数据库的版本信息及其标识。
根据本发明的数据库解密方法的一实施例,位于所述待解密的数据库页面的末尾的初始化向量若已经加密则进行再一次的解密操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海神计信息系统工程有限公司,未经上海神计信息系统工程有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610345547.4/2.html,转载请声明来源钻瓜专利网。