我正在研究使用某个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. 存储纯文本密码
- 2. DotNetNuke - 纯文本加密/散列密码
- 3. 如何加密的纯文本格式的MD5哈希密码
- 4. 使Django.contrib.auth存储纯文本密码
- 5. Magento导入纯文本密码
- 6. 通过HTTPS的纯文本密码
- 7. 如何使用bcrypt将纯文本密码与哈希密码进行比较?
- 8. 如何将纯文本转换为django中的散列密码
- 9. CakePHP 2,如何使用纯文本密码验证AuthComponent :: login()?
- 10. 如何硬编码在批处理文件中的密码
- 11. Perl如何处理密码提示?
- 12. 如何处理BCrypt哈希密码?
- 13. 使用wordpress哈希在actionscript中加密纯文本密码
- 14. rspec声明加密的密码不是纯文本
- 15. sesu - 在shell脚本中处理密码
- 16. 如何仅将文本加密为纯文本字符串
- 17. 在PowerShell脚本中将AES加密密码解密为纯文本
- 18. 如何处理CIDR块/文本处理?
- 19. 在Linux/UNIX上的纯文本文件中模糊网络代理密码
- 20. 在批处理文件/安全批处理文件中加密MySQL密码
- 21. 批处理脚本 - 访问Windows凭据管理器密码(或如何加密和使用密码)
- 22. 如何使用c#标识中的sql hasher密码将加密密码转换为纯文本?
- 23. 在HTML中处理纯文本并放回原处
- 24. 处理IO vs Haskell中的纯代码
- 25. 如何处理config/properties文件中的密码
- 26. Vigenere密码列表处理
- 27. UIPopoverController处理密码框?
- 28. 安全地处理密码
- 29. 清理大块纯文本 - 查找并替换纯文本
- 30. Net :: SCP/Net :: SCP :: Expect - 如何处理密码与密钥认证
难道我们有这个疯狂不安全的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