① 如何在手機上搭建加密資料庫
用SQLCipher進行資料庫加密。
SQLite目前已經是比較流行的數據存儲操作的API了。Android和iOS系統提供的API中操作資料庫默認均採用了SQLite方案。而SQLCipher是基於SQLite的加密資料庫存取方案,集成相對比較快捷而且透明,在一定程度上保證了數據的安全。
代碼設置:
如果你用的是系統sqlite3的API,則代碼基本不用變,因為SQLCipher是基於系統的sqlite3API擴展的;
如果你用的是FMDB,更無需擔心,因為FMDB是封裝的系統sqlite3API;
唯一需要做的,就是初始化打開資料庫文件sqlite3_open之後,緊跟著執行sqlite3_key設置資料庫加密的密鑰,於是sqlcipher集成工作就完成了。如果你用的是FMDB,可以直接用setKey方法;如果不是,也可以去FMDataBase.m源碼中拷貝這個方法的邏輯,方便調用
② FMDB資料庫 怎麼替換表中相同數據
sqlite不支持replace into語句,update在做更新時原紀錄又必須存在,如果原紀錄不存在,需要使用insert.
我的處理方式是,每次都先執行insert,如果返回失敗(因為有主鍵,重復紀錄是無法插入的),說明紀錄已經存在了,則去做update