【问题标题】:exporting sqlite file - convert it to proprietary format导出 sqlite 文件 - 将其转换为专有格式
【发布时间】:2009-11-23 12:32:45
【问题描述】:

我的 iPhone 应用程序中有一个 sqlite 文件。我希望用户能够再次将文件导出和导入,直接从应用程序到他们的桌面,以进行备份。但我不希望他们从 iPhone 以外的任何地方直接访问 sqlite 文件或数据。如何将文件转换为不可读的专有格式? Objective-c 中是否有任何设施可以让我实现这一目标?

谢谢。

【问题讨论】:

    标签: iphone sqlite


    【解决方案1】:

    您可能实际上不应该尝试在 sqlite 数据库和某些专有格式之间移植数据。我看不出直接修改 sqlite 数据库的充分理由除非您已经考虑了可以轻松存储数据的格式。除此之外,您不会找到一些通用的数据存储格式,您可以简单地将数据从 sqlite 数据库移入——这就是数据库的初衷(即通用数据存储)!

    一般用户似乎不太可能有实际阅读或修改 sqlite 数据库的动机或专业知识。您可以尝试通过将扩展名更改为任意内容来混淆它是 sqlite 数据库的事实。除此之外的步骤(压缩文件,以某种方式加密文件)都取决于您对用户无法访问应用程序外部数据的实际关心程度。然而,你的担心似乎根本没有根据(在我看来),我认为你不应该太担心用户试图挖掘和修改 sqlite 数据库,除非你有一些具体的未说明理由相信这一点。

    【讨论】:

    • +1 没有“不可读的专有格式”之类的东西。如果您的程序可以读取它(为了恢复),那么它根据定义是可读的。如果您出于某种原因试图混淆数据,您应该说明您认为您将面临什么样的攻击者,以便您可以选择适当的保护级别。但最终无法保护用户在自己的计算硬件上拥有的数据或程序。
    • 谢谢。我的理由很普通……我想最终为我的 iphone 应用程序提供一个桌面伴侣。我在想,如果我让用户将 sqlite 文件下载到他们的桌面,他们可以轻松地使用 SQLite 编辑器,如 firefox 扩展“SQLite Manager”来编辑文件,让我的桌面有点多余。但你是对的......只是为了这个目的而混淆文件是没有意义的。也许重命名就足够了。
    猜你喜欢
    • 2014-06-07
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    相关资源
    最近更新 更多