我需要在应用程序启动和设备重启之间存储一个持久记忆令牌(一个字符串)。令牌将由服务器提供,一旦我的用户登录到应用程序及其后端服务(已构建)。具体地说,我需要为记忆标记设置一个持久的数据占位符,但我不希望代码实际设置该占位符的值。
一方面,NSUserDefaults (现在称为UserDefaults)似乎是完成此任务的一种简单方法,但在阅读文档后,似乎这不是该功能的目的。我看到的所有文档都显示了通过为键赋值来设置它。我绝对不想让应用程序给那个键赋值。
做这件事最简单的方法是什么?
发布于 2017-04-29 05:02:29
要实现这一点,同时还要考虑安全性,最简单的方法是使用密钥链。存储在钥匙链中的数据使用例如设置Touch ID支持时提供的密钥进行加密。
您永远不应该、永远、永远都不应该使用UserDefaults来完成这样的任务。原因是UserDefaults是由简单的、未加密的.plist文件支持的,该文件是捆绑包的一部分,并且可以或多或少地被能够访问您的ipa的任何人(例如,任何具有越狱设备的人)查看。
Swift是用Objective-C编写的,但是有许多使用KeychainAccess封装它的包装器。您可以在https://github.com/kishikawakatsumi/KeychainAccess上使用此命令
https://stackoverflow.com/questions/43687450
复制相似问题