[發明專利]一種數據庫加解密方法和裝置在審
| 申請號: | 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.szxzyx.cn/pat/books/201610345547.4/2.html,轉載請聲明來源鉆瓜專利網。





