Class BCryptPasswordEncoder

java.lang.Object
org.springframework.security.crypto.password.AbstractValidatingPasswordEncoder
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
All Implemented Interfaces:
PasswordEncoder

public class BCryptPasswordEncoder extends AbstractValidatingPasswordEncoder
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.
  • 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, @Nullable 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, @Nullable 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, @Nullable 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