org.springframework.security.crypto.bcrypt
Class BCryptPasswordEncoder
java.lang.Object
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
- All Implemented Interfaces:
- PasswordEncoder
public class BCryptPasswordEncoder
- extends Object
- implements PasswordEncoder
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.
Method Summary |
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. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BCryptPasswordEncoder
public BCryptPasswordEncoder()
BCryptPasswordEncoder
public BCryptPasswordEncoder(int strength)
- Parameters:
strength
- the log rounds to use
BCryptPasswordEncoder
public BCryptPasswordEncoder(int strength,
SecureRandom random)
- Parameters:
strength
- the log rounds to userandom
- the secure random instance to use
encode
public String encode(CharSequence rawPassword)
- Description copied from interface:
PasswordEncoder
- 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.
- Specified by:
encode
in interface PasswordEncoder
matches
public boolean matches(CharSequence rawPassword,
String encodedPassword)
- Description copied from interface:
PasswordEncoder
- 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.
- Specified by:
matches
in interface PasswordEncoder
- Parameters:
rawPassword
- the raw password to encode and matchencodedPassword
- the encoded password from storage to compare with
- Returns:
- true if the raw password, after encoding, matches the encoded password from storage