Class BCryptPasswordEncoder

java.lang.Object
com.luna.common.encrypt.BCryptPasswordEncoder

public class BCryptPasswordEncoder extends Object
Implementation of PasswordEncoder that uses the BCrypt strong hashing function. Clients can optionally supply a "version" ($2a, $2b, $2y) and a "strength" (a.k.a. log rounds in BCrypt) and a SecureRandom instance. The larger the strength parameter the more work will have to be done (exponentially) to hash the passwords. The default value is 10.
Author:
Dave Syer
  • Constructor Details

    • BCryptPasswordEncoder

      public BCryptPasswordEncoder()
    • BCryptPasswordEncoder

      public BCryptPasswordEncoder(int strength)
      Parameters:
      strength - the log rounds to use, between 4 and 31
    • BCryptPasswordEncoder

      public BCryptPasswordEncoder(BCryptPasswordEncoder.BCryptVersion version)
      Parameters:
      version - the version of bcrypt, can be 2a,2b,2y
    • BCryptPasswordEncoder

      public BCryptPasswordEncoder(BCryptPasswordEncoder.BCryptVersion version, SecureRandom random)
      Parameters:
      version - the version of bcrypt, can be 2a,2b,2y
      random - the secure random instance to use
    • BCryptPasswordEncoder

      public BCryptPasswordEncoder(int strength, SecureRandom random)
      Parameters:
      strength - the log rounds to use, between 4 and 31
      random - the secure random instance to use
    • BCryptPasswordEncoder

      public BCryptPasswordEncoder(BCryptPasswordEncoder.BCryptVersion version, int strength)
      Parameters:
      version - the version of bcrypt, can be 2a,2b,2y
      strength - the log rounds to use, between 4 and 31
    • BCryptPasswordEncoder

      public BCryptPasswordEncoder(BCryptPasswordEncoder.BCryptVersion version, int strength, SecureRandom random)
      Parameters:
      version - the version of bcrypt, can be 2a,2b,2y
      strength - the log rounds to use, between 4 and 31
      random - the secure random instance to use
  • Method Details

    • main

      public static void main(String[] args)
    • encode

      public String encode(CharSequence rawPassword)
    • matches

      public boolean matches(CharSequence rawPassword, String encodedPassword)
    • upgradeEncoding

      public boolean upgradeEncoding(String encodedPassword)