我正在建设的Android应用程序,目的是每次安装一个用户。应用程序需要存储用户名和密码。验证后,输入的用户名和密码将存储在共享首选项中,每次启动应用程序时都需要输入这两个参数。用户名字段:第一个月密码字段:android:inputType="textPassword"我的问题是:加密/解密两个值的最不痛苦的方法是什么。加密过程不必是一流的,因为应用程序是为学校项目。
android:inputType="textPassword"
rggaifut1#
不需要对输入进行加密/解密。为了使它们不可读,你只需要使用一个好的一对一的Hash-Function。假设你的哈希函数是'h':要存储值:
// Pseudo SharedPrefs.put(USERNAME, h(input_username));
要验证值:
// Pseudo SharedPrefs.get(USERNAME).equals(h(input_username));
xfb7svmp2#
永远不要加密密码,使用哈希你可以试试这个:Hash String via SHA-256 in Java将密码散列保存在数据库中,当用户登录时,散列输入,如果数据库中的散列等于输入散列,则您知道用户键入了正确的密码
f45qwnt83#
既然你想加密/解密凭据(用户名和密码),每次当用户启动应用程序。我建议你使用[帐户管理器][1][1]:https://developer.android.com/reference/android/accounts/AccountManager.html,它将处理它并确保安全。
3条答案
按热度按时间rggaifut1#
不需要对输入进行加密/解密。
为了使它们不可读,你只需要使用一个好的一对一的Hash-Function。
假设你的哈希函数是'h':
要存储值:
要验证值:
xfb7svmp2#
永远不要加密密码,使用哈希
你可以试试这个:Hash String via SHA-256 in Java
将密码散列保存在数据库中,当用户登录时,散列输入,如果数据库中的散列等于输入散列,则您知道用户键入了正确的密码
f45qwnt83#
既然你想加密/解密凭据(用户名和密码),每次当用户启动应用程序。我建议你使用[帐户管理器][1]
[1]:https://developer.android.com/reference/android/accounts/AccountManager.html,它将处理它并确保安全。