對FMDB加密-SQLCipher如何使用

根據(jù)公司需求需要對數(shù)據(jù)庫加密豁鲤,公司使用FMDB做的數(shù)據(jù)庫,上網(wǎng)查看了許多博客發(fā)現(xiàn)不少坑没宾,總結(jié)一下如何使用SQLCipher侠讯。

Demo下載地址-本人寫的LKFMDBFMDB面向?qū)ο蠓庋b支持SQLCipher加密,操作簡單完全面向?qū)ο蠓庋b把介。

簡書地址

加密步驟

pod使用步驟

  1. 首先你的數(shù)據(jù)庫必須使用FMDB
  2. github下載勤讽,你會(huì)在里面發(fā)現(xiàn)原來他是支持pod的,所以你可以直接pod 'FMDB/SQLCipher' # FMDB with SQLCipher
  3. 然后就是pod install,如果被墻了就用pod install --verbose --no-repo-update
  4. 這樣的你的工程就有SQLCipher文件了
  5. 這樣數(shù)據(jù)庫還是沒有加密的因?yàn)槟J(rèn)是不加密的所以你必須在FMDatabase.m大約在150行和177行左右加上下面這幾句話
//不需要加密請注釋掉下面三行代碼
    else{
        [self setKey:DB_SECRETKEY];
    }

DB_SECRETKEY是宏也就是秘鑰
截圖說明

FMDatabase.m

但是許多項(xiàng)目是不怎么使用pod的,所以需要直接拖入工程里面

有的項(xiàng)目原來就是有fmdb工程文件的拗踢,但是不能加密地技,我的目的就是要把fmdb搞成支持加密的,應(yīng)該很多人的工程都是要這個(gè)場景吧

  1. 準(zhǔn)備工作首先你的工程是有FMDB的秒拔,同時(shí)也有SQLCipher
  2. 我們把準(zhǔn)備好的SQLCipher文件下sqlite3.csqlite3.h拖入到需要加密的工程莫矗,這樣就OK了
  3. 重復(fù)上面的第5步
  4. 關(guān)鍵步驟來了 關(guān)鍵步驟來了 關(guān)鍵步驟來了
    要在工程里設(shè)置兩個(gè)地方
    第一個(gè)地方-Other c Flags
-DSQLITE_HAS_CODEC
-DSQLITE_THREADSAFE
-DSQLCIPHER_CRYPTO_CC
-DSQLITE_TEMP_STORE=2
第二個(gè)地方-other Linker Flags

在這個(gè)地方需要注意網(wǎng)上的有博客是 Security -framework 這樣的順序但是編譯的時(shí)候會(huì)報(bào)錯(cuò)。

總結(jié)一下

其實(shí)簡單步驟就是:
1.在你有fmdb的工程里砂缩,加入sqlite3.h 和 sqlite3.m
2.在工程的build setting里修改兩個(gè)配置
一個(gè)是other c flags 作谚,如上面圖的那個(gè) other c flags
一個(gè)是 other link flags , 入上圖那個(gè)other lilnk flags
然后FMDatabase 的 setkey 方法就可以用了庵芭,在打開數(shù)據(jù)庫后妹懒,調(diào)用此方法,數(shù)據(jù)庫文件就加密ok了双吆。

你在打開數(shù)據(jù)庫會(huì)發(fā)現(xiàn)打開數(shù)據(jù)提示

加密后的數(shù)據(jù)庫提示

日了狗了輸入秘鑰也打不開眨唬,然而就是這樣会前。問我為什么我也不知道,反正在程序工是可以用代碼操作讀取數(shù)據(jù)庫的匾竿。

最后是不是在使用FMDB特別繁瑣要寫一堆SQL語句

Demo下載地址-githubLKFMDB本人對FMDB面向?qū)ο蠓庋b支持SQLCipher加密瓦宜,操作簡單完全面向?qū)ο蠓庋b。

簡書地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末岭妖,一起剝皮案震驚了整個(gè)濱河市临庇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昵慌,老刑警劉巖假夺,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異斋攀,居然都是意外死亡已卷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門淳蔼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悼尾,“玉大人,你說我怎么就攤上這事肖方」胛海” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵俯画,是天一觀的道長析桥。 經(jīng)常有香客問我,道長艰垂,這世上最難降的妖魔是什么泡仗? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮猜憎,結(jié)果婚禮上娩怎,老公的妹妹穿的比我還像新娘。我一直安慰自己胰柑,他們只是感情好截亦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著柬讨,像睡著了一般崩瓤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上踩官,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天却桶,我揣著相機(jī)與錄音,去河邊找鬼。 笑死颖系,一個(gè)胖子當(dāng)著我的面吹牛嗅剖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嘁扼,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼信粮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了偷拔?” 一聲冷哼從身側(cè)響起蒋院,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對情侶失蹤亏钩,失蹤者是張志新(化名)和其女友劉穎莲绰,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姑丑,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蛤签,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了栅哀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片震肮。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖留拾,靈堂內(nèi)的尸體忽然破棺而出戳晌,到底是詐尸還是另有隱情,我是刑警寧澤痴柔,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布沦偎,位于F島的核電站,受9級(jí)特大地震影響咳蔚,放射性物質(zhì)發(fā)生泄漏豪嚎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一谈火、第九天 我趴在偏房一處隱蔽的房頂上張望侈询。 院中可真熱鬧,春花似錦糯耍、人聲如沸扔字。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啦租。三九已至,卻和暖如春荒揣,著一層夾襖步出監(jiān)牢的瞬間篷角,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國打工系任, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恳蹲,地道東北人虐块。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像嘉蕾,于是被迫代替她去往敵國和親贺奠。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 數(shù)據(jù)庫加密一般有兩種方式 1错忱、對所有數(shù)據(jù)進(jìn)行加密 2儡率、對數(shù)據(jù)庫文件加密 對比以上兩種方式,第一種方式的常見做法是是...
    肉肉要次肉閱讀 3,468評(píng)論 0 1
  • 在iOS開發(fā)過程中經(jīng)常需要用到SQLite來存儲(chǔ)數(shù)據(jù)以清,由于Apple的沙盒機(jī)制儿普,我們App的數(shù)據(jù)存儲(chǔ)在沙盒里面,...
    伍驍辛閱讀 4,413評(píng)論 8 15
  • 介紹: 使用SQLite數(shù)據(jù)庫的時(shí)候掷倔,有時(shí)候?qū)τ跀?shù)據(jù)庫要求比較高眉孩,特別是在iOS8.3之前,未越獄的系統(tǒng)也可以通過...
    farawei閱讀 4,998評(píng)論 2 51
  • 這篇文章介紹如何對數(shù)據(jù)庫文件進(jìn)行加密勒葱,基于FMDB+SQLCipher浪汪,標(biāo)明踩過的坑,留給同樣掉進(jìn)坑里的小伙伴參考...
    7544eb39c4ac閱讀 6,521評(píng)論 3 28
  • 在iOS應(yīng)用程序開發(fā)中經(jīng)常需要使用SQLite來存儲(chǔ)數(shù)據(jù)凛虽,很多時(shí)候需要加密保存一部分的數(shù)據(jù)死遭。常見的做法是將要存儲(chǔ)的...
    Crazy2015閱讀 5,573評(píng)論 0 4