• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 在后台或通知进程中使用加密 Realm ?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 22:46:41 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

Realm 有一个很棒的 write upsample code用于加密您的数据库。本文档和示例按预期工作,直到您尝试在以下情况下解密 Realm :

  1. 用户的手机上有密码
  2. 设备已锁定
  3. 当收到远程通知时,您的应用正在尝试与 Realm 一起工作

发生这种情况是因为我们无法访问钥匙串(keychain)来获取(或创建)用于加密/解密 Realm 的 key 。默认的 kSecAttrAccessible 值为 kSecAttrAccessibleWhenUnlocked

在我看来,有几个选项:

  1. kSecAttrAccessible 更改为 kSecAttrAccessibleAlways。我不喜欢这个,因为它 a) 太开放 b) 它是 slated to be deprecated在 iOS 9 中
  2. kSecAttrAccessible 更改为 kSecAttrAccessibleAfterFirstUnlockkSecAttrAccessibleAfterFirstUnlockThisDeviceOnly。这更好,但对我来说仍然感觉太开放了,即使 docs state:推荐用于需要后台应用访问的项目
  3. 创建第二个非加密 Realm 以用作临时数据库。在此处存储通知数据,然后当应用程序从用户交互中唤醒(设备将被解锁)时,将数据从暂存 Realm 移动到加密的真实 Realm 。这也感觉不对,因为我们的数据暂时未加密
  4. 结合 2 和 3 对 staging Realm 进行加密,并使用 kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
  5. 保护它的 key
  6. ??

我目前正在尝试确定 #2、#3 是否值得投入时间,或者我是否可以提出 #5

这里有没有我明显应该使用的方法或我错过的方法?

谢谢



Best Answer-推荐答案


我是 KeychainAccess 的作者图书馆。我强烈建议您使用 kSecAttrAccessibleAfterFirstUnlock (第二个选项)。这是从后台访问钥匙串(keychain)项目的最佳方式。

关于ios - 在后台或通知进程中使用加密 Realm ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40332246/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap