2010-12-15 44 views
0

我的应用程序需要用户在第一次访问时登录,然后将其存储在SharedPreferences中以备未来应用程序启动时使用。在Android中安全地访问两个不同活动中的登录数据

我试图实现注销功能,我想知道最好的方法是什么。

截至目前,我的LoginActivity和SignOutActivity是独立的,因为它们出现在不同的屏幕上。理想情况下,我希望能够以这些活动可以访问登录数据并保持安全的方式存储首选项。你们会如何建议我处理这件事?

回答

1

要么只是使用default SharedPreferences,要么在两个活动中获取具有相同名称的SharedPreferences;他们的重点是他们共享:)我有点担心,你认为SharedPreferences实际上是安全的或孤立的;他们不是。任何拥有根权限的人can read them(尽管没有root权限的其他应用程序默认不能)。如果你存储密码或类似的东西,加密它们。

SharedPreferences有3 modesMODE_PRIVATEMODE_WORLD_READABLEMODE_WORLD_WRITEABLEMODE_PRIVATE是默认和最具限制性的,仍然允许您自由访问首选项以在您自己的应用中进行任何活动(或者使用相同的user ID创建的任何其他应用)。

+0

啊,好的。在阅读文档后,我确信自己与一个Activity绑定,但我没有尝试指定一个名称并试图以这种方式访问​​它们。至于安全性,有没有更安全的方式来存储密码?现在,我正在使用MD5散列。 – HenryAdamsJr 2010-12-15 19:54:32

+0

非常确定md5已被证明不再那么安全,使用sha1 – binnyb 2010-12-15 20:18:52

+0

其实,sha1也被证明“不太安全” - 至少使用sha2(256/512)。如果它只是一个本地使用的密码,我会在腌制后使用SHA512密码。当然,除非应用程序中的数据输入密码才能加密,否则任何拥有root权限的用户都可以使用该密码。您仍然需要为您的应用中的任何实际数据使用某种加密策略来保护密码。 – 2010-12-15 21:12:01

相关问题