我允许用户创建应用级密码。我通过 SFHFKeychainUtils 在钥匙串中保存和检索它。一切正常,除非用户升级到新设备并从旧设备恢复备份。正确的密码永远不会被接受,显然是丢失了。
这个SO 线程“使用未加密的备份,您只能将钥匙串恢复到同一 iOS 设备”中似乎涵盖了原因的解释。结果是我的 passwordIsSet 标志指示 YES,没有密码匹配,并且用户被锁定在应用程序之外。
除了将密码存储在 NSUserDefault 中之外,我还有什么选择,这显然不安全:
- 有没有一种方法可以安全地存储密码,以便将备份恢复到新设备?
- 有没有办法让我的应用程序知道它在新设备上,所以我可以清除 passwordIsSet 标志并强制用户创建一个新设备?
请注意,我已经测试了几种不同的方法。密码正确。无论是否重置设备,都可以恢复到相同的设备。该问题仅限于恢复到新设备。
谢谢你。