2011-06-09 68 views
1

我正在研究使用某个webapp的API的应用程序。 API要求在每次调用时传递的(纯文本)用户密码。由于我不熟悉密码最佳做法(特别是在移动设备上),我想知道在我的iPhone应用程序中存储用户密码的最佳方式和位置是什么。任何帮助是极大的赞赏。如何处理纯文本密码

+2

难道我们有这个疯狂不安全的API的名称吗?就这样我们(作为用户)可以避免这项服务? – jv42 2011-06-09 15:27:00

+0

HTTP基本认证? – Paul 2011-06-09 15:27:25

+0

除非通过SSL加密连接,否则jv42是正确的,发送平面密码相当疯狂。对于使用AES tho的加密,如果你想让我知道,有一个非常酷的教程围绕网络。 – theiOSDude 2011-06-09 15:28:38

回答

5

如果您要存储敏感数据,则应该使用钥匙串。这个API是一个使用的痛苦,但是有一些很好的示例代码。

是NSUserDefaults的易于使用,但不提供加密。如果用户的iTunes备份没有加密,您可以在正确的备份文件上运行字符串以明文形式查看存储的首选项(我在上周证实了这一点)。见this thread

+0

谢谢。清晰完整的答案。 – 2011-06-09 15:39:17

-1

我将我的加密密码存储在NSUserDefaults中。但是,纯文本密码不应按照我以前的答案进入此处。

+0

不,它不适用于安全存储密码。您应该使用钥匙串服务。 – Jim 2011-06-09 15:31:56

+0

@jim,也许我应该根据我对这个问题的评论规定,我使用AES加密,所以我想存储这个加密的base 64字符串是安全的,可以存储在NSUserDefaults中。 ?我可以让我的downvote upvoted请病假修改我的答案。欢呼声 – theiOSDude 2011-06-10 11:18:12

+0

不,这仍然不是一个很好的解决方案。首先,为什么要自己去做加密的麻烦?这就是钥匙链的用途。其次,这并不安全。你需要密钥解密。你在哪里存储这个?在应用程序捆绑中?任何有权访问App Store的人都可以获得。第三,钥匙链更灵活 - 例如您可以指定其内容仅在设备解锁时可用。 – Jim 2011-06-10 11:35:10

相关问题