Passay - Xác thực mật khẩu

Chính sách Mật khẩu điển hình chứa một bộ quy tắc để kiểm tra mật khẩu xem có tuân thủ các quy tắc của tổ chức hay không. Xem xét chính sách sau:

  • Độ dài của mật khẩu phải từ 8 đến 16 ký tự.

  • Mật khẩu không được chứa bất kỳ khoảng trắng nào.

  • Mật khẩu phải bao gồm từng phần sau: chữ hoa, chữ thường, chữ số và ký hiệu.

Thí dụ

Ví dụ dưới đây cho thấy việc xác thực mật khẩu theo chính sách trên bằng thư viện Passay.

import java.util.ArrayList;
import java.util.List;

import org.passay.CharacterRule;
import org.passay.EnglishCharacterData;
import org.passay.LengthRule;
import org.passay.PasswordData;
import org.passay.PasswordValidator;
import org.passay.Rule;
import org.passay.RuleResult;
import org.passay.WhitespaceRule;

public class PassayExample {
   public static void main(String[] args) {
        
      List<Rule> rules = new ArrayList<>();        
      //Rule 1: Password length should be in between 
      //8 and 16 characters
      rules.add(new LengthRule(8, 16));        
      //Rule 2: No whitespace allowed
      rules.add(new WhitespaceRule());        
      //Rule 3.a: At least one Upper-case character
      rules.add(new CharacterRule(EnglishCharacterData.UpperCase, 1));        
      //Rule 3.b: At least one Lower-case character
      rules.add(new CharacterRule(EnglishCharacterData.LowerCase, 1));        
      //Rule 3.c: At least one digit
      rules.add(new CharacterRule(EnglishCharacterData.Digit, 1));        
      //Rule 3.d: At least one special character
      rules.add(new CharacterRule(EnglishCharacterData.Special, 1));
        
      PasswordValidator validator = new PasswordValidator(rules);        
      PasswordData password = new PasswordData("Microsoft@123");        
      RuleResult result = validator.validate(password);
        
      if(result.isValid()){
         System.out.println("Password validated.");
      } else {
         System.out.println("Invalid Password: " + validator.getMessages(result));            
        }
    }
}

Đầu ra

Password validated.