Android是否具有验证密码的功能?

时间:2012-12-19 16:59:11

标签: android validation passwords

我正在开发一款Android应用,其中一项任务就是检查密码的强度。

是否有用于检查密码强度的内置函数?

3 个答案:

答案 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
        }


    }