存储密码
回答
智能关于安全!
了解AccountManager不是加密服务或钥匙串很重要。它以纯文本格式存储帐户凭证,就像您传递它们一样。在大多数设备上,这不是一个特别的问题,因为它将它们存储在只能由root用户访问的数据库中。但是,在有根的设备上,任何具有adb设备访问权限的人都可以读取凭证。
考虑到这一点,您不应该将用户的实际密码传递给AccountManager。addAccountExplicitly()。相反,您应该存储一个加密安全的令牌,该令牌对攻击者的使用有限。如果你的用户凭证保护着有价值的东西,你应该仔细考虑做类似的事情。
请记住:当涉及到安全代码,请按照“Mythbusters”规则:不要在家中尝试这个!在实施任何自定义帐户代码之前咨询安全专家。
既然安全免责声明已经完成,现在是时候重新开始工作了。您已经实施了自定义帐户代码的功能;剩下的就是管道。
哇兼容。我真的不认为将用户的密码保存在明文中是一个严肃的选择。
检出AccountManager这是专为此目的而设计的。虽然它在你所关联的问题中被压低了,SampleSyncAdapter真的是一个AccountManager
例子的好资源,也是我知道的SDK中唯一的一个。
编辑 - 约javax.crypto
,我认为它是一个比AccountManager
更低级别的API。从文档:
许多服务器支持 认证令牌,可用于不发送用户的实际 密码验证到 服务器发出请求 的一些概念。 (验证令牌 通常与单独的 请求其不包括该用户的凭证 创建。)的AccountManager可以 产生用于应用程序身份验证令牌, 因此应用程序不需要 手柄密码直接。 Auth令牌 通常可重复使用并由Account Manager管理,但必须定期更新 。这是应用程序的责任 当他们停止工作时使auth 令牌失效,因此AccountManager知道它需要 重新生成它们。
我讨厌在javax.crypto的级别上处理这个问题,如果我不需要的话。
U可以简单地声明这两个用户名和密码的if语句,如果条件匹配u能在错误的情况下启动活动u能简单地生成的错误举杯input.but你无法如果u从那里retreive密码失去任何意思,但是你可以为一个用户创建许多密码。我将这个东西添加到我的应用程序中,并为我工作得很好。
- 1. 存储加密密码和salt或仅存储加密密码?
- 2. 密码存储?
- 3. 存储密码
- 4. 密码加密和密码存储 - Perl
- 5. SSH密码存储
- 6. 密码存储器
- 7. 存储密码暂时存储
- 8. 密码存储和检索
- 9. 安全密码存储
- 10. 与哈希存储密码
- 11. 存储纯文本密码
- 12. 如何存储密码盐
- 13. 如何存储密码?
- 14. 用Python存储密码
- 15. 存储帐户/密码
- 16. 在加密的cookie中存储密码?
- 17. AES加密 - 在Android上存储密码
- 18. 将加密密码存储在xml中
- 19. 只有当密码存在时才存储密码哈希值
- 20. 即使我没有存储密码,程序是否可以存储密码?
- 21. 存储在MobileSafari内存中的密码
- 22. 解密存储Java密钥存储
- 23. 使用Monotouch存储和读取密码钥匙密码
- 24. 哪种编码用于存储可解密的密码?
- 25. 春季启动 - 密钥存储密码的代码
- 26. 将密码存储为散列值时检索密码
- 27. 存储原始密码文本
- 28. 在Java中使用SHA1存储密码
- 29. 运行时在哪里存储密码?
- 30. 存储密码哈希 - VARCHAR VS VARBINARY
听起来不错。很好。但我需要保持与API级别4(我编辑的问题,对不起)保持兼容。无论如何+1 – 2011-03-19 09:29:28