每当应用程序未运行时如何加密核心数据数据库
Posted
技术标签:
【中文标题】每当应用程序未运行时如何加密核心数据数据库【英文标题】:how to encrypt core data database whenever app isn't running 【发布时间】:2014-03-21 05:57:42 【问题描述】:我想在我的应用程序中使用包含敏感信息的 Core Data。所以我想保护它不被访问,即使是在未锁定的手机上。
现在我正在加密didEnterBackground:
中的 sqlite、sqlite-shm 和 sqlite-wal 文件,并在 applicationWillEnterForeground:
中再次解密它们。它按预期工作,但我不知道这是否是最好的方法。例如。如果我的应用程序崩溃,它不会加密文件。
加密和解密数据库中的单个条目/列也不是最好的选择,因为那样我就不能使用谓词,对吧?
那么什么是“最先进的技术”?有没有办法只在打开应用程序时才解密 sqlite 文件?
由于应用程序 >= ios 7,是否会定期检查加密/解密状态(当应用程序在后台时)一个选项?但是如果用户关闭后台刷新我又迷路了......
【问题讨论】:
【参考方案1】:如果 NSFileProtectionComplete
对您来说还不够(Data Protection / NSFileProtectionComplete - successfully supported through entitlements.plist? 非常详细),那么 SQLCipher 看起来很有希望。
【讨论】:
以上是关于每当应用程序未运行时如何加密核心数据数据库的主要内容,如果未能解决你的问题,请参考以下文章
当应用程序未运行(终止/终止)时,如何保持核心位置和核心蓝牙运行?