【问题标题】:iOS Core Data encryption [closed]iOS核心数据加密[关闭]
【发布时间】:2014-06-05 18:49:45
【问题描述】:

我一直在使用 Apple 文档之一中提供的“SecKeyWrapper”类加密核心数据字段。 SecKeyWrapper 类是非 ARC。我想知道这是否仍然是加密核心数据字段的最佳方式,还是有更新/更好的解决方案可用?

谢谢

【问题讨论】:

  • 很高兴知道为什么这个问题被否决,这样我就可以以更好的方式改进我的问题,否则对否决票没有任何意义:)
  • 仅供参考:如果您将鼠标悬停在向下投票箭头上,它会显示“此问题未显示任何研究工作;不清楚或无用”。这就是我对投反对票原因的猜测。

标签: ios core-data encryption


【解决方案1】:

iOS 5 and later Core Data 默认使用 NSFileProtection 来保护持久化数据。

对于为 iOS 5.0 或更高版本构建的应用程序,持久存储现在默认以加密格式将数据存储在磁盘上。默认保护级别会阻止对数据的访问,直到用户首次解锁设备。在配置持久存储时,您可以通过为 NSPersistentStoreFileProtectionKey 键分配自定义值来更改保护级别。有关 iOS 5.0 中新增的数据保护的更多信息,请参阅“数据保护改进”。

如果要修改 Core Data 存储的默认文件保护行为,请将键 NSPersistentStoreFileProtectionKey 的值更改为存储选项字典中的不同 NSFileProtectionKey 值。

例子:

NSDictionary *storeOptions = @{NSPersistentStoreFileProtectionKey  : NSFileProtectionComplete};

if (![coordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:[self storeURL] options:storeOptions error:&error]){
     [self presentError:error];
 }

【讨论】:

  • 谢谢@quellish。我会尝试这种方法。如果我有任何问题会回来。
  • 小心。 “在用户第一次解锁设备之前,默认保护级别会阻止对数据的访问。”用户解锁设备后,数据将不再加密,即使用户再次丢失设备,数据也将保持加密状态。
  • 这就是答案不使用默认的原因
  • 我希望我可以为实际引用/链接到文档提供额外的支持
  • @jack '从 iOS 8.3 开始,所有应用程序数据都是加密的,除非是有意共享的',是否可以指出这方面的文档? IE是不是一直加密数据(即使手机解锁)?
猜你喜欢
  • 1970-01-01
  • 2019-01-05
  • 2012-11-25
  • 2013-02-01
  • 1970-01-01
  • 2013-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多