如何在iOS后台可靠地使用flutter上的加密数据库?

问题描述 投票:0回答:1

如何在flutter中加密数据库并在ios上使用它?

最初的工作是使用带有 flutter_secure_storage 密钥的 hive。这在 Android 上运行良好,但在 iOS 上我们似乎遇到了 IOS 可访问性的问题。默认值特别糟糕,并且“始终”无法通过插件使用,并且已被标记为已弃用和/或“不推荐”;请参阅https://developer.apple.com/documentation/security/keychain_services/keychain_items/restricting_keychain_item_accessibility

和:https://pub.dev/packages/flutter_secure_storage

如果数据库受保护,BC设备被锁定,那么它似乎返回 contains=false, read=null ,就像从未写入过一样,因此创建一个新密钥并使用它可能会损坏/删除整个数据库

一些想法

  1. 检查应用程序是否已恢复以查看是否有后台访问

  2. 写入并读取虚拟值,看看是否相同

  3. 保存到sharedprefs中initializedHive true/false或类似

  4. 检查 cupertinoIsProtected,但这似乎需要开发中的代码未发布到 pub.dev 以实现 flutter_secure_storage

尝试了 readAll 、 read、 contains ,希望得到异常而不是 flutter_secure_storage 中的 null/empty 请参阅:https://github.com/neiljaywarner/flutter_background_geolocation/commit/0a55e883e68edab3cec0cfd18bec22466b6cf0b3#diff-86917493a1c5b1988760f51b20bbac6281d105e6d0699e1d97b1ee1cb 30db4b4

ios database flutter encryption hive
1个回答
0
投票

进入后台的方法是通过后台位置(https://pub.dev/packages/flutter_background_geolocation)所以我最终使用了https://codewithandrea.com/articles/robust-app-initialization-riverpod / 并在设备解锁时刷新启动提供程序 - 好吧,在活动回调上,即当您摇动设备或四处走动等时。

© www.soinside.com 2019 - 2024. All rights reserved.