我想在我的应用程序中使用Core Data,其中包含敏感信息。所以我想保护它不被访问,即使在没有被锁定的手机上也是如此。
现在我正在加密didEnterBackground:
中的sqlite,sqlite-shm和sqlite-wal文件,并在applicationWillEnterForeground:
中再次解密它们。它按预期工作,但我不知道这是否是最好的方法。例如。如果我的应用程序崩溃,它将无法加密文件。
加密和解密数据库中的单个条目/列也不是最佳选择,因为那时我不能使用谓词,对吧?
那么最先进的'是什么状态?有没有办法让sqlite文件只在应用程序打开时解密?
由于应用程序是> = iOS 7,您应该定期检查加密/解密状态(当应用程序在后台时)一个选项吗?但如果用户转过背景刷新,我又会再次丢失......
答案 0 :(得分:1)
如果NSFileProtectionComplete
对您来说不够(Data Protection / NSFileProtectionComplete - successfully supported through entitlements.plist?详细说明),那么SQLCipher看起来很有希望。