如何保护NSUserDefaults?

ero*_*ppa 17 iphone

Apple建议使用NSUserDefaults存储您的所有应用偏好设置.但是,似乎NSUserDefaults很容易编辑.有没有办法确保这一点.我不是在寻找一种方法来让它无法编辑,只是让它变得更难以使用户不会那么想改变应用程序内部变量.

ben*_*ado 22

如果一条数据不敏感(例如,默认字体大小),请将其存储在NSUserDefaults中.

如果需要保护免受随意窥探(例如,用户的密码),请将其存储在钥匙串中.

如果它需要对用户安全(例如,注册代码),则需要自己进行加密,然后将数据存储在任何您喜欢的位置.

  • 钥匙串将在卸载后保留值。使用时请记住这一点 (2认同)

小智 9

为了这个目的,我写了一个简单易用的小类.适用于iPhone和Mac OS X,它是免费的并且在MIT许可下.你可以在github上找到它:SecureUserDefaults

  • 它在我的应用程序崩溃 (2认同)

Mar*_*ves -1

对于iPhone?他们无法更改这些变量,没有 Terminal.app 可以更改这些变量(越狱设备除外,但这是 Apple 的问题,而不是您的问题)。对于桌面应用程序,您可以使用 NSData 对其进行编码,它们将被存档为 base 64。