10

How can we implement a password strength checker in Android?

halfer
  • 19,824
  • 17
  • 99
  • 186
MorningGlory
  • 758
  • 1
  • 11
  • 21
  • possible duplicate of [Password strength checking library](http://stackoverflow.com/questions/3200292/password-strength-checking-library) – zengr Mar 03 '11 at 06:46
  • @zengr I need to implement it in android. Is there any library in android to do that – MorningGlory Mar 03 '11 at 07:00
  • I am not an android guy, but AFAIK, if it's a java lib, you can use it in your android app right? – zengr Mar 03 '11 at 07:13

1 Answers1

13

This seems to work:

//ASSERT password not null
    private float getRating(String password) throws IllegalArgumentException {
        if (password == null) {throw new IllegalArgumentException();}
        int passwordStrength = 0;    
        if (password.length() > 5) {passwordStrength++;} // minimal pw length of 6
        if (password.toLowerCase()!= password) {passwordStrength++;} // lower and upper case
        if (password.length() > 8) {passwordStrength++;} // good pw length of 9+
        int numDigits= Utilities.getNumberDigits(password);
        if (numDigits > 0 && numDigits != password.length()) {passwordStrength++;} // contains digits and non-digits
        return (float)passwordStrength;
}     

Utilities class

public static int getNumberDigits(String inString){
          if (isEmpty(inString)) {
              return 0;
          }
          int numDigits= 0;
          int length= inString.length();
          for (int i = 0; i < length; i++) {
              if (Character.isDigit(inString.charAt(i))) {
                  numDigits++; 
              }
          }
          return numDigits; 
      }

  public static boolean isEmpty(String inString) {
      return inString == null || inString.length() == 0;
  }
JAL
  • 3,319
  • 2
  • 20
  • 17