【问题标题】:Archiver Securing SQLite Data without using Encryption on iPhoneArchiver 在 iPhone 上不使用加密保护 SQLite 数据
【发布时间】:2010-12-03 04:29:57
【问题描述】:

我正在开发一个 iphone 应用程序,该应用程序将 Core Data 与 SQLite 数据存储和资源包中的大量图像一起使用。我想要一种“简单”的方法来混淆 SQLite 数据库的文件结构和图像文件,以防止随意的黑客/不道德的开发人员访问它们。部署应用程序时,数据库文件和图像文件将被混淆。在启动应用程序时,它会读入并取消混淆数据库文件,将未混淆版本写入用户“tmp”目录以供核心数据使用,并根据需要读取/取消混淆图像文件。

我想对文件应用一个简单的算法,该算法会以某种方式扰乱/操纵文件数据,以便在文本编辑器中打开数据库时无法识别 sqlite 数据库数据,因此两者都无法识别其他应用程序(SQLite Manager、Photoshop 等)

从我阅读的信息看来,我可以使用 NSFileManager、NSKeyedArchiver 和 NSData 来完成此操作,但我不确定如何继续。多年来一直在开发软件,但我对 CocoaTouch、Mac 和 iPhone 都是新手。也不必保护/加密我的数据,所以这是新的。

感谢任何想法、建议或解决方案链接。

【问题讨论】:

    标签: iphone sqlite encryption core-data nskeyedarchiver


    【解决方案1】:

    您可以使用 gzip 压缩文件。删除扩展名并删除文件的标题,那么如果有人掌握了 gzip 压缩的数据库,就很难猜出如何解密它。

    如果您想再次阅读,请预先添加 gzip 标头并解压缩。 gzip 在 iPhone 上可用

    【讨论】:

    • 听起来不错。每次应用程序运行时,数据库只需解密一次,gzip 在我的 1MB 数据库上应该相当快。至于 jpg,我想我可以删除或打乱标题,以便在运行时重新应用它会很快。以前从未弄乱过文件的标题或结构,所以我想我有一些学习要做:) 感谢您的反馈
    • Redrocks 你能和我分享更多细节吗? fyasar@gmail.com 谢谢
    猜你喜欢
    • 2011-06-02
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 2021-03-19
    • 2014-02-07
    • 1970-01-01
    相关资源
    最近更新 更多