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