为什么不在 NSUserDefaults 中存储密码是显而易见的?

Why is it obvious to not store password in NSUserDefaults?

我一直在谷歌搜索如何存储密码,大多数人说唯一可接受的选择是钥匙串。由于匆忙,我实施了这种方法。但现在我很好奇不将密码存储在 NSUserDefaults 中是什么显而易见的事情,将密码存储在 CoreData 中是否可以? 到目前为止,我了解到 NSUserDefaults 以纯文本形式存储在 plist 文件中。但是如何访问这个文件呢?我读过可以借助闪电电缆和 iTunes 来完成,但没有找到如何做到这一点。 提前致谢!

这里的问题是越狱设备,当设备越狱后,它会允许其他app/tweak拦截应用程序中的沙箱文件,因此可以search/read .plist 文件在那里,至少这是我所知道的

您使用 NSUSerDefault 存储的数据将以简单的 plist 二进制格式保存,没有任何加密。读取这些数据或修改这些数据有很多技巧。

越狱用户可以使用iFile查看或修改plist文件。 Non-Jailbreak 用户可以使用iExplore - iFunBox 等其他软件来完成此操作。该软件允许用户探索 iOS 文件系统而无需 phone 越狱

长话短说 -- 任何人都可以查看或修改 NSUserDefault 中的数据。因此,如果您不想公开分享您的详细信息,则切勿将它们存储在 NSUserDefault.