① 如何在手机上搭建加密数据库
用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