因此,在我的应用程序(iOS)中,您必须注册才能使用该服务(一种食品服务)。但是,为了更改帐户的详细信息(用户名、密码和电子邮件),您必须重新输入您的密码。除了用户注销,这是您唯一一次需要您的密码使用应用程序。所以我想知道,因为用户基本上从不使用他们的密码,而且他们很可能会在一次需要密码的时候忘记密码,如果我将他们的密码存储到他们的本地设备上(在NSUserDefaults中),可以吗?
因为他们的密码只在他们的本地设备上,这看起来不像是一个安全风险。如果这个应用程序被黑了,他们唯一能得到的密码就是他们自己的密码。
此外,我还计划将其存储为一个字符串(没有加密)。如果在将密码保存到缺省值之前对其进行散列或加密,会有什么区别吗?
提前谢谢。
发布于 2012-08-07 11:00:13
使用KeyChain存储密码。我学习了如何使用此链接来完成这个任务,KeyChainItemWrapper类可以找到这里。
如果您使用KeyChain,我认为您不需要对此加密。此外,不建议使用NSUserDefaults来存储密码。
发布于 2012-07-21 21:05:32
用户倾向于坚持使用1到2个密码。如果该应用程序被另一个应用程序入侵,那么从您的服务中获得用户的密码可能会允许您访问除您的食品服务之外的其他更敏感的资源。更好的方法可能是在电话上存储某种长期身份验证令牌,而不是密码本身。该令牌可以绑定到服务器上的用户帐户信息,从而允许用户在保持其密码安全的同时只输入一次密码。
发布于 2012-07-22 00:06:19
根据具体情况,您可以使用密钥链。
使用密钥链有一些优点,比如UICKeyChainStore和STKeychain使其实现起来非常简单。
需要注意的特点有:
https://softwareengineering.stackexchange.com/questions/157703
复制相似问题