iphone - Archiver 在 iPhone 上不使用加密保护 SQLite 数据

标签 iphone sqlite encryption core-data nskeyedarchiver

我正在开发一个 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/

相关文章:

Android Room,SQLite - 出乎意料,得到了 'COLUMN'

使用公钥的 Java RSA 加密

c# - 没有 SslStream 的 SSL 因为我想通过 SOCKS5 代理连接

python - 用盐加密/解密python中的数据

iphone - 将 View Controller 单独转换为 ARC 的效果如何?

iphone - UITableViewCell viewWithTag get frame of UIView 麻烦

PHP 不适用于 SQLite

iphone - 将 UIImageView 放在 UIScrollView 中而不使用 contentInset?

iphone - 在sqlite中使用行id比较两个表

multithreading - 在这种情况下 SQLite 线程安全吗?