我正在开发一个iphone应用程序,它使用Core Data和SQLite数据存储以及资源包中的大量图像。我想要一种“简单”的方式来混淆SQLite数据库和图像文件的文件结构,以防止偶然的黑客/不道德的开发者获得访问权限。部署应用程序时,数据库文件和图像文件将被混淆。启动应用程序后,它会读入并取消模糊数据库文件,将未混淆的版本写入用户“tmp”目录以供核心数据使用,并根据需要读取/取消混淆图像文件。
我想对文件应用一个简单的算法,这些文件会以某种方式对文件数据进行加扰/操作,这样当在文本编辑器中打开db时,sqlite数据库数据就无法识别,因此不会被其他应用程序(SQLite Manager,Photoshop等)
从我读过的信息来看,似乎我可以使用NSFileManager,NSKeyedArchiver和NSData来完成此任务,但我不知道如何继续。多年来一直在开发软件,但我是CocoaTouch,Mac和iPhone的新手。也从来没有必要保护/加密我的数据,所以这是新的。
感谢任何想法,建议或解决方案的链接。
答案 0 :(得分:4)
您可以使用gzip压缩文件。删除扩展名并删除文件的标题,如果有人得到gzip压缩数据库,那么猜测如何解密它将是非常困难的。
当你想再次阅读时,预先挂起gzip标头并解压缩。 gzip可以在iPhone上找到