我正在研究使用某个webapp的API的应用程序。 API要求在每次调用时传递的(纯文本)用户密码。由于我不熟悉密码最佳做法(特别是在移动设备上),我想知道在我的iPhone应用程序中存储用户密码的最佳方式和位置是什么。任何帮助是极大的赞赏。如何处理纯文本密码
回答
如果您要存储敏感数据,则应该使用钥匙串。这个API是一个使用的痛苦,但是有一些很好的示例代码。
是NSUserDefaults的易于使用,但不提供加密。如果用户的iTunes备份没有加密,您可以在正确的备份文件上运行字符串以明文形式查看存储的首选项(我在上周证实了这一点)。见this thread。
谢谢。清晰完整的答案。 – 2011-06-09 15:39:17
我将我的加密密码存储在NSUserDefaults中。但是,纯文本密码不应按照我以前的答案进入此处。
不,它不适用于安全存储密码。您应该使用钥匙串服务。 – Jim 2011-06-09 15:31:56
@jim,也许我应该根据我对这个问题的评论规定,我使用AES加密,所以我想存储这个加密的base 64字符串是安全的,可以存储在NSUserDefaults中。 ?我可以让我的downvote upvoted请病假修改我的答案。欢呼声 – theiOSDude 2011-06-10 11:18:12
不,这仍然不是一个很好的解决方案。首先,为什么要自己去做加密的麻烦?这就是钥匙链的用途。其次,这并不安全。你需要密钥解密。你在哪里存储这个?在应用程序捆绑中?任何有权访问App Store的人都可以获得。第三,钥匙链更灵活 - 例如您可以指定其内容仅在设备解锁时可用。 – Jim 2011-06-10 11:35:10
不要使用NSUserDefaults
,密码的安全存储正是the keychain services的用途。
- 1. filezilla纯文本密码
- 2. 存储纯文本密码
- 3. DotNetNuke - 纯文本加密/散列密码
- 4. 如何加密的纯文本格式的MD5哈希密码
- 5. 使Django.contrib.auth存储纯文本密码
- 6. Magento导入纯文本密码
- 7. MySQL的纯文本哈希密码
- 8. 通过HTTPS的纯文本密码
- 9. 显示SHA1密码为纯文本
- 10. 将密码从密文中解密为纯文本
- 11. 如何使用bcrypt将纯文本密码与哈希密码进行比较?
- 12. 导入用户时,如何将纯文本密码转换为django密码?
- 13. 编程密码程序(纯文本 - >凯撒密码 - > ASCII)?
- 14. 如何将纯文本密码转换为SHA-1
- 15. 如何让django以纯文本保存用户密码?
- 16. svn - 如何保存密码,但不是以纯文本格式?
- 17. 如何将纯文本转换为django中的散列密码
- 18. CakePHP 2,如何使用纯文本密码验证AuthComponent :: login()?
- 19. 如何处理Mazovia编码文本
- 20. 如何在Angular 2中处理纯文本,服务器响应?
- 21. 如何处理纯文本服务器响应?
- 22. 在密码文本区域中显示纯文本
- 23. 如何硬编码在批处理文件中的密码
- 24. Perl如何处理密码提示?
- 25. 如何处理多个密码
- 26. 如何处理BCrypt哈希密码?
- 27. 猫鼬如何处理密码很好?
- 28. 我如何处理密码输入?
- 29. sesu - 在shell脚本中处理密码
- 30. rspec声明加密的密码不是纯文本
难道我们有这个疯狂不安全的API的名称吗?就这样我们(作为用户)可以避免这项服务? – jv42 2011-06-09 15:27:00
HTTP基本认证? – Paul 2011-06-09 15:27:25
除非通过SSL加密连接,否则jv42是正确的,发送平面密码相当疯狂。对于使用AES tho的加密,如果你想让我知道,有一个非常酷的教程围绕网络。 – theiOSDude 2011-06-09 15:28:38