【发布时间】:2014-03-24 10:20:58
【问题描述】:
我正在使用 SQLCipher 加密我的数据库,因为其中包含敏感信息。一切似乎都正常,我只是很生气,因为我现在有两个 .sqlite 文件:
~/Library/Application Support/MyData.sqlite
~/Library/Application Support/MyApp/MyData.sqlite
~/Library/Application Support/MyApp/MyData.sqlite-shm
~/Library/Application Support/MyApp/MyData.sqlite-wal
第一个是加密的,第二个不是 - 但它不包含任何信息。所以它似乎有效,因为无法获取信息,但我只是想确保这是正确的。
【问题讨论】:
-
什么是 shm 和 wal 文件已经解释过很多次了。重复例如:stackoverflow.com/questions/18870387/…
-
是的,我不太关心 shm 和 wal 文件,但更关心两个 .sqlite 文件,即 - 为什么有两个 sqlite 文件?
-
如果从模拟器中删除应用再重新安装,是不是每次都得到两个
.sqlite文件? -
这似乎不正确。 -shm 和 -wal 文件来自 WAL,可以放心地忽略。但是,这并不能解释 2 个不同的 MyData.sqlite 数据库的存在。 @swalkner 第一个数据库是否包含任何数据?文件上的日期戳是什么?您确定没有在使用 SQLCipher 之前遗留下来吗?
-
您的应用程序和核心数据模型是否都称为 MyData?至少使用 encrypted-core-data (使用 SQLCipher),您将看到每个模型的空(仅模式)数据库,模型名称和另一个数据库,其中包含命名为项目本身的所有加密数据(即 model1. sqlite,model2.sqlite,Project.sqlite)。
标签: core-data ios7 magicalrecord sqlcipher encrypted-core-data-sql