public class

BCryptPasswordEncoder

extends Object
implements PasswordEncoder
java.lang.Object
   ↳ org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder

Class Overview

Implementation of PasswordEncoder that uses the BCrypt strong hashing function. Clients can optionally supply 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.

Summary

Public Constructors
BCryptPasswordEncoder()
BCryptPasswordEncoder(int strength)
BCryptPasswordEncoder(int strength, SecureRandom random)
Public Methods
String encode(CharSequence rawPassword)
Encode the raw password.
boolean matches(CharSequence rawPassword, String encodedPassword)
Verify the encoded password obtained from storage matches the submitted raw password after it too is encoded.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.springframework.security.crypto.password.PasswordEncoder

Public Constructors

public BCryptPasswordEncoder ()

public BCryptPasswordEncoder (int strength)

Parameters
strength the log rounds to use

public BCryptPasswordEncoder (int strength, SecureRandom random)

Parameters
strength the log rounds to use
random the secure random instance to use

Public Methods

public String encode (CharSequence rawPassword)

Encode the raw password. Generally, a good encoding algorithm applies a SHA-1 or greater hash combined with an 8-byte or greater randomly generated salt.

public boolean matches (CharSequence rawPassword, String encodedPassword)

Verify the encoded password obtained from storage matches the submitted raw password after it too is encoded. Returns true if the passwords match, false if they do not. The stored password itself is never decoded.

Parameters
rawPassword the raw password to encode and match
encodedPassword the encoded password from storage to compare with
Returns
  • true if the raw password, after encoding, matches the encoded password from storage