【问题标题】:Protect sqlite database from downloading保护 sqlite 数据库不被下载
【发布时间】:2012-09-26 17:07:08
【问题描述】:

没有解决方案可以防止在越狱 iPhone 中下载预加载的数据库。
Any way to get your SQLite DB off iPhone?

我认为唯一的方法是加密一个预加载的数据库(也许只加密我们不需要搜索的单个字段中的数据)只有在视图必须加密时才解密显示数据
(当然,所有这些都使用个人密钥)

有人知道该怎么做吗?是否有更好的解决方案?
我正在使用核心数据,但我无法解密 NSString 属性,我只能解密 NSData,但创建一个包含文本加密字符串的数据(BLOB)字段的 sqlite 数据库并不简单。

谢谢!

【问题讨论】:

  • 您的数据库是如何创建的?它只是与您的应用程序捆绑在一起的 .db 资源吗?你是从服务器下载的吗?您是否使用应用程序生成它(使用应用程序编写)?基本上,哪个软件负责将敏感数据写入到数据库中? iOS 应用,还是其他软件?
  • 谢谢内特!我将 Core Data 与预加载的 sqlite 数据库一起使用。最好的办法是从 FileMaker 导出 csv 并在 sqlite 表中导入(但只执行此过程,显然所有数据都是未加密的)。应用程序只需要从该实体读取数据。也许,将来,应用程序可以在另一个实体中写入纯数据。有任何想法吗?非常感谢!

标签: database sqlite core-data encryption jailbreak


【解决方案1】:

也许我找到了解决办法!

我在 iOS5 和 iOS6 上试用了这段代码,效果很好。现在我可以使用个人关键字加密 NSString 并获得 NSString(使用 AES256 和 Base64 编码)。 实际上,只需对代码稍加修改即可使用 ARC。

https://github.com/dev5tec/FBEncryptor.git

如果有人找到更好的解决方案,请在此处发布。

对于最好的解决方案,如果有一种方法可以从 FileMaker 或其他文件中导出 csv 数据中的加密字段,然后导入到 sqlite 数据库中,这将非常有用。这样我们就可以在 Core Data 中预加载 sqlite db。应用程序可以在视图必须显示在屏幕上时解密字段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-14
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    相关资源
    最近更新 更多