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.