用SQLCipher把sqlite文件加密后为什么还能看到内容

 我来答
百度网友4d3212ddb5e
2016-07-22 · TA获得超过3575个赞
知道大有可为答主
回答量:2955
采纳率:93%
帮助的人:508万
展开全部
NSString *path_sql = [NSString stringWithFormat:@"ATTACH DATABASE '%@' AS encrypted KEY 'BIGSecret';",string];
int result1 = sqlite3_exec(database_, [path_sql UTF8String], NULL, NULL, NULL);
NSLog(@"result1 = %d",result1);

int result2 = sqlite3_exec(database_, "SELECT sqlcipher_export('encrypted');", NULL, NULL, NULL);
NSLog(@"result2 = %d",result2);

int result3 = sqlite3_exec(database_, "DETACH DATABASE encrypted;", NULL, NULL, NULL);
NSLog(@"result3 = %d",result3);

这个是SQLCipher教程里,对没有加密过的数据库文件进行加密,他用的命令行,但我看了论坛说用exec语句也有相同功能,现在result1和result3都是SQLITE_OK,result2的值为1,貌似是这个sqlcipher_export方法找不到,但我已经把openSSL和SQLCipher这两个工程照着教程添加进我的主工程里了,为什么找不到呢?sqlite3_key语句已经复写了,可以看出和原来预留接口给出的key语句不一样,说明工程也依赖上了吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式