【问题标题】:Android - Storing a PIN/PasswordAndroid - 存储 PIN/密码
【发布时间】:2015-10-21 17:12:08
【问题描述】:
心目中的应用程序有一个自定义键盘。 9 个按钮的 GridLayout,编号为 1-9。用户将按下 4 个按钮,然后“输入”以最初创建 PIN,然后进行验证。
是否有可以存储(加密)和检索此 4 位数 PIN 码的内置方式?
大多数应用程序如何做到这一点?
作为一个简单的解决方案,散列此 PIN 并将其存储在首选项中就足够了吗?
【问题讨论】:
标签:
java
android
security
passwords
【解决方案1】:
您可以使用this library 将PIN 安全地存储在SharedPreferences 中。
将此添加到您的build.gradle
dependencies {
compile 'com.scottyab:secure-preferences-lib:0.1.4'
}
然后访问SecurePreferences文件
SharedPreferences prefs = new SecurePreferences(context, null, "my_custom_prefs.xml");
从这里您可以像正常一样加载并保存到首选项
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("userPin", pin).commit();
int pin = prefs.getInt("userPin", default);
图书馆的免责声明:
默认情况下,它不是防弹的安全性(实际上它更像是对偏好的混淆),但它可以快速地让您的 Android 应用程序更加安全。例如,它会阻止 root 设备上的用户轻松修改应用程序的共享首选项。推荐使用 v0.1.0 中介绍的基于用户密码的首选项。