我正在开发一个 iPhone 应用程序,该应用程序使用 Core Data 和 SQLite 数据存储以及资源包中的大量图像。我想要一种“简单”的方法来混淆 SQLite 数据库的文件结构和图像文件,以防止随意的黑客/不道德的开发人员访问它们。部署应用程序时,数据库文件和图像文件将被混淆。启动应用程序后,它将读入并取消混淆数据库文件,将未混淆的版本写入用户的“tmp”目录以供核心数据使用,并根据需要读取/取消混淆图像文件。
我想对文件应用一种简单的算法,以某种方式打乱/操作文件数据,以便在文本编辑器中打开数据库时无法识别 sqlite 数据库数据,并且两者都无法识别其他应用程序(SQLite Manager、Photoshop 等)
从我读到的信息来看,我似乎可以使用 NSFileManager、NSKeyedArchiver 和 NSData 来完成此任务,但我不确定如何继续。从事软件开发多年,但我对 CocoaTouch、Mac 和 iPhone 都是新手。也从来不需要保护/加密我的数据,所以这是新的。
任何想法、建议或解决方案链接都值得赞赏。
最佳答案
您可以使用 gzip 来压缩文件。删除扩展名并删除文件头,那么如果有人掌握了 gzip 压缩的数据库,就很难猜测如何解密它。
当您想再次读取时,请预先添加 gzip header 并解压缩。 gzip 可在 iPhone 上使用
关于iphone - Archiver 在 iPhone 上不使用加密保护 SQLite 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1507096/