您需要在 UI、安全等方面涵盖很多内容,因此我将简要概述您需要完成的步骤。
您需要活动或dialogs 的 UI,获取初始密码和检查密码都应该有
使用密码属性集的TextView(隐藏字符)
允许用户取消或选择 ok 并附加点击监听器的按钮
要存储/获取密码,然后使用与此类似的东西而不是 sdcard 和 txt 文件Getting a password from shared preferences,您也可以使用共享首选项编辑器来存储它。这增加了一点安全性,但并不多
一般来说,你应该存储的不是密码本身,而是你应该真正存储一个令牌以增加安全性,这里有一个类可以为你做到这一点
import java.security.MessageDigest;
public class PasswordToken {
static public String makeDigest(String password)
{
String hexStr = "";
try {
MessageDigest md = MessageDigest.getInstance("SHA1");
md.reset();
byte[] buffer = password.getBytes();
md.update(buffer);
byte[] digest = md.digest();
for (int i = 0; i < digest.length; i++) {
hexStr += Integer.toString( ( digest[i] & 0xff ) + 0x100, 16).substring( 1 );
}
} catch(Exception e) // If the algo is not working for some reason on this device
// we have to use the strings hash code, which
// could allow duplicates but at least allows tokens
{
hexStr = Integer.toHexString(password.hashCode());
}
return hexStr;
}
static public boolean validate(String password, String token)
{
String digestToken = "";
String simpleToken = "";
digestToken = makeDigest(password);
if (0 == digestToken.compareTo(token))
return true;
if (0 == simpleToken.compareTo(token))
return true;
return false;
}
}
所以当你点击你的确定按钮时存储一个密码
PasswordTextView.getText();
String token = PasswordToken.makeDigest(password);
//... store TOKEN using the shared preferences editor
在您的用户想要登录时检查密码
PasswordTextView.GetText();
String token = PasswordToken.makeDigest(password);
//... GET token using the shared preferences
if (PasswordToken.validate(token))
Start your new activity
else
tell your user to try again
您可以使用startActivity or startActivityForResult 启动另一个活动并查看覆盖对话框类以执行 UI 位。