结合SQLCipher的LKDBHelper数据库加密

39 篇文章 0 订阅
在podfile文件中加入
pod 'FMDB/SQLCipher'
#此处只能这样加入,分开(pod 'FMDB' pod'SQLCipher')加密无效。。。(亲试)至于原因暂时还不清楚,知道的同学希望能告知下,谢谢
pod 'LKDBHelper'
加密的时候 数据库不能有数据
LKDBHelper的作者已经提供了方法,只需要设置key就可以实现加密了
/**
 *  @brief Set encryption key
 refer: FMDatabase.h  - (BOOL)setKey:(NSString *)key;
 *  invoking after the `LKDBHelper initialize` in YourModelClass.m `getUsingLKDBHelper` function
 */
- (BOOL)setKey:(NSString *)key;

/// Reset encryption key
- (BOOL)rekey:(NSString *)key;


在创建完 LKDBHelper 就要设置key


//重载选择 使用的LKDBHelper
+(LKDBHelper *)getUsingLKDBHelper
{
    static LKDBHelper* db;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        NSString *paths =  [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
        NSString* dbpath = [paths stringByAppendingPathComponent:[NSString stringWithFormat:@"userInfos/test.db"]];

        NSLog(@"数据库路径------->%@",dbpath);

        db = [[LKDBHelper alloc] initWithDBPath:dbpath];
        [db setKey:@"encryption"];//key可以是随意字符串
    });
    return db;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值