Class PasswordPolicyResult

java.lang.Object
com.iizix.passwordpolicy.PasswordPolicyResult

public class PasswordPolicyResult extends Object
Result of the password policy checking.

List of entropy messages

These text ID's can be localized by the System app or overridden by your own app's text tables.

Policy text ID's and the English text

   password.policy.valid = Password is valid.
   password.policy.too_short = Password length must be minimum %s characters.
   password.policy.digit_required = Password must have a digit.
   password.policy.symbol_required = Password must have a 'symbol' (i.e. not 0-9, a-z or A-Z).
   password.policy.upper_lower_case_required = Password must have at least one lower case and one upper case character.
   password.policy.matches_old_password = The last %s passwords must be unique. 
   password.policy.insecure = Password is insecure, try the following:\n
   password.policy.insecure_warning = Password is insecure: 
   password.policy.insecure_no_explanation = Password is insecure.
   password.policy.line_separator = \n - 
 

Main text ID's and the English text

   password.main.password = Password:
   password.main.feedback.warning = Warning:
   password.main.feedback.suggestion = Suggestion:
   password.main.feedback.minimumMet = Your password meets the minimum strength requirement.
   password.main.feedback.insecure = Your password does not meet the minimum strength requirement.
   password.main.entropy = Entropy:
   password.main.timeToCrack = Time to crack:
   password.main.match.matchType = Match Type:
   password.main.match.token = Token:
   password.main.match.startIndex = Start Index:
   password.main.match.endIndex = End Index:
   password.main.match.length = Length:
   password.main.match.dictionary = Dictionary:
   password.main.match.dictionaryValue = Dictionary Value:
   password.main.match.rank = Rank:
   password.main.match.leetSub = Leet Substitutions:
   password.main.match.reversed = Reversed:
   password.main.match.distance = Distance:
   password.main.match.repeatingCharacters = Repeating Characters:
   password.main.match.repeated = Repeated:
   password.main.match.firstCharacter = First Character:
   password.main.match.spacialType = Spacial Type:
   password.main.match.turns = Turns:
   password.main.match.shifts = Shifts:
   password.main.match.year = Year:
   password.main.match.month = Month:
   password.main.match.day = Day:
   password.main.match.separator = Separator:
   password.main.estimate.greaterCenturies = infinite (>100000 centuries)
   password.main.estimate.centuries = centuries
   password.main.estimate.years = years
   password.main.estimate.months = months
   password.main.estimate.days = days
   password.main.estimate.hours = hours
   password.main.estimate.minutes = minutes
   password.main.estimate.seconds = seconds
   password.main.estimate.instant = instant
 

Feedback text ID's and the English text

   # Default
   password.feedback.default.suggestions.useFewWords = Use a few words, avoid common phrases.
   
   # Extra
   password.feedback.extra.suggestions.addAnotherWord = Add another word or two. Uncommon words are better.
   
   # Dictionary
   password.feedback.dictionary.warning.passwords.notAllowed = This password is not allowed to be used.
   password.feedback.dictionary.warning.passwords.top10 = This is a top-10 common password.
   password.feedback.dictionary.warning.passwords.top100 = This is a top-100 common password.
   password.feedback.dictionary.warning.passwords.veryCommon = This is a very common password.
   password.feedback.dictionary.suggestions.capitalization = Capitalization doesn't help very much.
   password.feedback.dictionary.suggestions.allUppercase = All-uppercase is almost as easy to guess as all-lowercase.
   password.feedback.dictionary.suggestions.reversed = Reversed words aren't much harder to guess.
   password.feedback.dictionary.suggestions.leet = Predictable substitutions like '@' instead of 'a' don't help very much.
   password.feedback.dictionary.suggestions.passwords.notAllowed = Please try a different password that is not on the exclusion list, add extra words, or digits.
   
   # Spatial
   password.feedback.spatial.warning.straightRowsOfKeys = Straight rows of keys are easy to guess.
   password.feedback.spatial.warning.shortKeyboardPatterns = Short keyboard patterns are easy to guess.
   password.feedback.spatial.suggestions.UseLongerKeyboardPattern = Use a longer keyboard pattern with more turns.
   
   # Repeat
   password.feedback.repeat.warning.likeAAA = Repeats like "aaa" are easy to guess.
   password.feedback.repeat.warning.likeABCABCABC = Repeats like "abcabcabc" are only slightly harder to guess than "abc".
   password.feedback.repeat.suggestions.avoidRepeated = Avoid repeated words and characters.
   
   # Sequence
   password.feedback.sequence.warning.sequenceWarning = Sequences like abc or 6543 are easy to guess.
   password.feedback.sequence.suggestions.avoidSequences = Avoid sequences.
   
   # Year
   password.feedback.year.warning.recentYears = Recent years are easy to guess.
   password.feedback.year.suggestions.avoidYears = Avoid recent years, avoid years that are associated with you.
   
   # Date
   password.feedback.date.warning.dates = Dates are often easy to guess.
   password.feedback.date.suggestions.avoidDates = Avoid dates and years that are associated with you.
 
Author:
Christopher Mindus
  • Field Details

    • VALID

      public static final PasswordPolicyResult VALID
      The valid password policy result.
    • returnCode

      public final PasswordPolicyResult.ReturnCode returnCode
      The return code.
    • value

      public final int value
      Value parameter, used to format string when greater than zero.
  • Method Details

    • getSuggestionsTextIDs

      public List<String> getSuggestionsTextIDs()
      Gets the list of text IDs to use as suggestion as to how to enhance the password entropy if too weak.
      Returns:
      The unmodifiable list of text IDs, or null if none is present.
    • getEnglishSuggestionsTexts

      public List<String> getEnglishSuggestionsTexts()
      Gets the list of English texts to use as suggestion as to how to enhance the password entropy if too weak.
      Returns:
      The unmodifiable list of English texts, or null if none is present.
    • getEnglishText

      public String getEnglishText(String separator)
      Gets the full English text, with a potential separator string before each suggestion for the password entropy to become stronger if too weak.
      Parameters:
      separator - The separator string, if null or empty string, "\n - " will be used.
      Returns:
      An English text of the password policy match result.
    • getLocalizedText

      public String getLocalizedText(SessionInfo sessionInfo, String separator)
      Gets the full localized text, with a potential separator string before each suggestion for the password entropy to become stronger if too weak.
      Parameters:
      sessionInfo - The session information, or null if not available.
      separator - The separator string, if null or empty string, "\n - " will be used, unless sessionInfo is non-null in which case the localized text ID "password.policy.line_separator" is used.
      Returns:
      An English text of the password policy match result.