2

我正在开发一个 Android 应用程序,我的任务之一是检查密码的强度。

是否有任何用于检查密码强度的内置功能?

4

3 回答 3

1

为了回答这个问题,没有 Android 功能可以做到这一点,最接近和最好的方法是使用 Mkyong 在他的博客上建议的正则表达式:

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();

      }
于 2015-12-05T21:46:14.667 回答
0

听起来您需要一个外部库,例如http://code.google.com/p/vt-middleware/wiki/vtpassword等。

或者编写一些代码很简单,比如检查它有多长,它有什么字符等等,并根据它打印出不同的东西。

如果说用户有一个 10 长度的密码和一些大写字符,您可以在此基础上增加一些密码强度参数,奖励更复杂的密码。您可以自己设置阈值。

于 2012-12-19T17:01:55.727 回答
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
        }


    }
于 2012-12-19T17:05:21.083 回答