如何在app中存储密码

时间:2016-07-13 06:17:32

标签: java android email

我使用lib通过自己的电子邮件帐户在我的应用中发送邮件。问题是,我需要将加密的电子邮件放在我的班级中,我认为很容易将其反转并访问我的电子邮件。那么,在我的应用程序中保持密码安全的最佳位置是什么?我无权访问服务器中的任何内容。

我使用的图书馆:https://github.com/yesidlazaro/GmailBackground

3 个答案:

答案 0 :(得分:3)

如果您想要加密,可以查看 MessageDigest 。它们提供强大的哈希功能来加密您的密码。

https://developer.android.com/reference/java/security/MessageDigest.html

在其他答案指出的情况下,在持久性 SharedPreferences 中存储您的密码或电子邮件。

https://developer.android.com/reference/android/content/SharedPreferences.html

答案 1 :(得分:2)

请参阅@Kushan关于如何加密它的答案..

您可以安全地将其存储在SharedPreferences内,并且在需要时您可以随时将其恢复,但一个好方法是将其存储在服务器上仅作为另一个答案的评论表明,当电话时,SharedPreferences不安全扎根

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 

SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("password", ""); //put when you got your password here.....
editor.commit();

在需要时通过以下方式取回:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
String password = sharedPref.getString("password", "noPass");

答案 2 :(得分:2)

SecurePerferecne用于存储密码和敏感信息 这是存储数据的方式:

<map>
<int name="timeout" value="500" />
<boolean name="is_logged_in" value="true" />
</map>

加密数据:

   <map>
    <string name="TuwbBU0IrAyL9znGBJ87uEi7pW0FwYwX8SZiiKnD2VZ7">
        pD2UhS2K2MNjWm8KzpFrag==:MWm7NgaEhvaxAvA9wASUl0HUHCVBWkn3c2T1WoSAE/g=rroijgeWEGRDFSS/hg
    </string>
    <string name="8lqCQqn73Uo84Rj">k73tlfVNYsPshll19ztma7U">
        pD2UhS2K2MNjWm8KzpFrag==:MWm7NgaEhvaxAvA9wASUl0HUHCVBWkn3c2T1WoSAE/g=:jWm8KzUl0HUHCVBWkn3c2T1WoSAE/g=
    </string>
</map>

您可以为加密的偏好设置单独的文件。

SharedPreferences prefs = new SecurePreferences(context, null, "my_custom_prefs.xml");

存储用户密码:

SharedPreferences prefs = new SecurePreferences(context, "userpassword", "my_user_prefs.xml");

更多here