iOS - 保存敏感数据的位置 - NSUserDefaults,Keychain,还有其他什么?

时间:2013-06-17 22:53:02

标签: iphone ios nsuserdefaults keychain

我正在开发一个应用程序,虽然它本身没有“凭据”,但它确实为每个用户分配了一些识别信息,以便与远程服务一起使用。此信息应尽可能不可见以确保安全性。甚至用户都无法访问此信息。

我还没有找到对应用中用户保存此信息的位置的明确答复。

1)鉴于数据的敏感性,钥匙串似乎是正确的位置,但这些数据并不完全是用户名和密码。这有什么不同吗?

2)从我可以告诉NSUserDefaults,只要你不通过设置视图公开它,看起来也是私有的,但我认为不像Keychain本身那么安全。

评论

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

我知道这个问题已经过时了,但我偶然发现它,所以这就是我所发现的。 NSUserDefaults存储未加密的数据,因此不应将其用于敏感数据。知识渊博的用户可以从计算机访问它。如果需要完全隐藏,钥匙串将是合适的地方。如果您存储的个人信息不需要保密,那么NSUserDefaults就可以了。

这是一篇很好的文章,可以进一步解释:

https://www.andyibanez.com/nsuserdefaults-not-for-sensitive-data/