我正在开发一款Android应用,其中一项任务就是检查密码的强度。
是否有用于检查密码强度的内置函数?
答案 0 :(得分:1)
为了回答这个问题,没有Android功能可以做到这一点,最接近和最好的方法是使用正则表达式作为Mkyong在他的blog上建议:
private Pattern pattern;
private Matcher matcher;
private static final String PASSWORD_PATTERN =
"((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})";
public PasswordValidator(){
pattern = Pattern.compile(PASSWORD_PATTERN);
}
/**
* Validate password with regular expression
* @param password password for validation
* @return true valid password, false invalid password
*/
public boolean validate(final String password){
matcher = pattern.matcher(password);
return matcher.matches();
}
答案 1 :(得分:0)
听起来你需要一个外部库,例如http://code.google.com/p/vt-middleware/wiki/vtpassword等。
或者它很简单,可以编写诸如检查它有多长,它有什么字符等代码,并根据它打印出不同的东西。
如果说用户有10个长度的密码和一些大写字符,你可以根据这个增加一些密码强度参数,奖励更复杂的密码。您可以自己设置阈值。
答案 2 :(得分:0)
如果您不想使用外部库...您可以自己检查..这样的事情:
public void onSubmitClicked(View v)
{
String pass = passwordEditText.getText().toString();
if(TextUtils.isEmpty(pass) || pass.length < [YOUR MIN LENGTH])
{
passwordEditText.setError("You must more characters in your password");
return;
}
if(....){
// do other controls here
}
}