iphone - iOS 如何加密存储持久数据?

标签 iphone ios encryption

iPhone 应用程序可以加密其存储的数据吗?因此,即使是拥有越狱 iOS 设备的用户也无法访问该文件。例如,游戏中心可能与本地数据同步,您不希望用户操纵分数。您也不希望您的 IAP 被规避。

在写入设备之前是否有一种简单的方法来加密您的数据?

可能我的问题不是很清楚。事实上,他们是:

  1. 当我使用像这样的东西时:[array writeToFile:path atomically:YES];是否有任何自动加密可确保只有我的应用才能正确访问该文件?

  2. 如果不能,最简单的实现方式是什么?

PS:现在我发现 NSData 可以完成这项工作,但是 NSDataWritingFileProtectionComplete 标志需要 #if __IPHONE_4_0 <= __IPHONE_OS_VERSION_MAX_ALLOWED .我想知道在不受支持的设备上会发生什么情况?

最佳答案

@GrahamLee 对 this question 的回答中有关 iOS 加密的更多信息和其他 iOS 上标记的问题 security.stackexchange.com .

基本总结是——仅基于 iPhone 控件:

  • 如果有人拥有设备且未锁定,他们可以访问所有数据
  • 如果有人拥有设备并且设备已锁定,他们可以获得大部分数据,甚至可能是所有数据(可能有一些异常(exception)情况)

您可以在存储数据时混淆并在您的应用程序中使用加密,但攻击者可以对该加密代码进行逆向工程以进行解密。

您需要计算出此类 DRM 技术的值(value),并决定它们在这种情况下是否值得。

关于iphone - iOS 如何加密存储持久数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7511376/

相关文章:

iphone - 使用 Junit 进行 UI 测试

iphone - 导航栏和 View 之间的分隔符 - iOS 7

ios - 使用公钥的 RSA 加密

python - 使用 PKCS#8 编码的私钥创建兼容的 Java "RSA"签名

ios - iOS 上的 RSA 加密 (RSA/ECB/PKCS1Padding)

iphone - UIDatePickerModeCountDownTimer 模式下的 UIDatePicker : how to change to minutes and seconds mode?

iphone - 当我使用 Three20 库时,我是否需要在应用商店提交过程中对使用加密的问题回答 "yes"?

iphone - 在 Xcode 4.0 上使用 Reachability.h 时出错

iOS 跨多个 UIViewController 从 Nib 文件实例化自定义 View

ios - 如果我需要在后台调用网络服务来更新位置,我的申请会被拒绝吗?