Class PasswordUtility


  • public class PasswordUtility
    extends Object
    Utility to generate and compare password hashes.
    • Method Detail

      • buildPasswordHash

        public static String buildPasswordHash​(String password,
                                               String algorithm,
                                               int saltSize,
                                               int iterations)
                                        throws NoSuchAlgorithmException
        Generates a hash of the specified password using the specified algorithm, salt size and number of iterations into account.
        Parameters:
        password - The password to be hashed.
        algorithm - The desired hash algorithm.
        saltSize - The desired salt size. If the specified integer is lower that DEFAULT_SALT_SIZE the default is used.
        iterations - The desired number of iterations. If the specified integer is lower than 1 the default value is used.
        Returns:
        The password hash.
        Throws:
        NoSuchAlgorithmException - If the specified algorithm is not supported.
      • isPlainTextPassword

        public static boolean isPlainTextPassword​(String password)
        Returns true if the specified string doesn't start with a valid algorithm name in curly brackets.
        Parameters:
        password - The string to be tested.
        Returns:
        true if the specified string doesn't start with a valid algorithm name in curly brackets.
      • isSame

        public static boolean isSame​(String hashedPassword,
                                     String password)
        Returns true if hash of the specified password equals the given hashed password.
        Parameters:
        hashedPassword - Password hash.
        password - The password to compare.
        Returns:
        If the hash of the specified password equals the given hashedPassword string.
      • extractAlgorithm

        public static String extractAlgorithm​(String hashedPwd)
        Extract the algorithm from the given crypted password string. Returns the algorithm or null if the given string doesn't have a leading algorithm such as created by buildPasswordHash or if the extracted string doesn't represent an available algorithm.
        Parameters:
        hashedPwd - The password hash.
        Returns:
        The algorithm or null if the given string doesn't have a leading algorithm such as created by buildPasswordHash or if the extracted string isn't a supported algorithm.