我正在构建适用于每个安装一个用户的Android应用。应用程序需要存储用户名和密码。
验证后,输入的用户名和密码存储在共享首选项中,每次应用程序启动时都需要输入两者。
用户名字段:android:inputType="textCapSentences"
密码字段:android:inputType="textPassword"
我的问题是:加密/解密这两个值的最不痛苦的方法是什么。
加密过程不一定是最好的,因为该应用程序是用于学校项目。
答案 0 :(得分:3)
无需加密/解密输入。
为了使它们不可读,你只需要使用一对一的Hash-Function。
让我们说你的哈希函数是' h':
存储您的值:
// Pseudo
SharedPrefs.put(USERNAME, h(input_username));
验证您的值:
// Pseudo
SharedPrefs.get(USERNAME).equals(h(input_username));
答案 1 :(得分:1)
永远不要加密密码,使用哈希
你可以试试这个:Hash String via SHA-256 in Java
将密码哈希值保存在数据库中,当用户登录时,对输入进行哈希处理,如果数据库中的哈希值等于输入哈希值,则表示用户输入了正确的密码
答案 2 :(得分:0)
因为您希望每次用户启动应用程序时加密/解密凭据(用户名和密码)。我建议你使用[客户经理] [1]
[1]:https://developer.android.com/reference/android/accounts/AccountManager.html将处理它以及安全。