SQLite是一個(gè)輕量的、跨平臺(tái)的、開源的數(shù)據(jù)庫(kù)引擎,它的在讀寫效率、消耗總量、延遲時(shí)間和整體簡(jiǎn)單性上具有的優(yōu)越性,使其成為移動(dòng)平臺(tái)數(shù)據(jù)庫(kù)的最佳解決方案(如iOS、Android)。然而免費(fèi)版的SQLite有一個(gè)致命缺點(diǎn):不支持加密。這就導(dǎo)致存儲(chǔ)在SQLite中的數(shù)據(jù)可以被任何人用任何文本編輯器查看到。
青秀ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!如果我們想要使得自己的數(shù)據(jù)庫(kù)加密,解決方案就是使用另一款開源的加密數(shù)據(jù)庫(kù)SQLCipher,SQLCipher使用256-bit AES加密,由于其基于免費(fèi)版的SQLite,主要的加密接口和SQLite是相同的,當(dāng)然也增加了一些自己的接口,如在新建和打開數(shù)據(jù)庫(kù)時(shí),給數(shù)據(jù)庫(kù)設(shè)置秘鑰之類的操作。
FMDB是一個(gè)開源的類庫(kù),它對(duì)sqlite數(shù)據(jù)庫(kù)操作進(jìn)行了很不錯(cuò)的封裝,而且也增加了對(duì)sqlcipher的支持,也就是說(shuō),我們不直接用sqlcihper也能完成加解密操作,而且FMDB在操作sqlite方面方便得多?,F(xiàn)在的APP開發(fā)如果涉及到數(shù)據(jù)庫(kù)操作,F(xiàn)MDB基本上是選。
下面內(nèi)容主要是針對(duì)一些在初期忽略了數(shù)據(jù)庫(kù)私密性,而到了中期需要讓數(shù)據(jù)庫(kù)進(jìn)行升級(jí)加密的App的簡(jiǎn)單方案介紹和代碼實(shí)現(xiàn)。如果讀者沒(méi)有使用FMDB,直接使用了sqlite,那本文也有一定參考性,只是關(guān)于SQLCipher的配置,并沒(méi)有介紹,因?yàn)殡m然FDMB的加密也是使用SQLCipher,但是不需要進(jìn)行配置的。
具有加密功能的FMDB版本
加密的FMDB其實(shí)是一個(gè)分支,也就是說(shuō),如果你需要替換FMDB。Github上關(guān)于該分支的安裝只提供了cocospod的安裝方式。
Github上FMDB的地址:https://github.com/ccgus/fmdb
舉個(gè)例子,如果你以前是如下寫的