Class BCryptPasswordEncoder
java.lang.Object
org.springframework.security.crypto.password.AbstractValidatingPasswordEncoder
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
- All Implemented Interfaces:
PasswordEncoder
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.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
Stores the default bcrypt version for use in configuration. -
Constructor Summary
ConstructorsConstructorDescriptionBCryptPasswordEncoder
(int strength) BCryptPasswordEncoder
(int strength, @Nullable SecureRandom random) BCryptPasswordEncoder
(BCryptPasswordEncoder.BCryptVersion version, int strength) BCryptPasswordEncoder
(BCryptPasswordEncoder.BCryptVersion version, int strength, @Nullable SecureRandom random) BCryptPasswordEncoder
(BCryptPasswordEncoder.BCryptVersion version, @Nullable SecureRandom random) -
Method Summary
Modifier and TypeMethodDescriptionprotected String
encodeNonNullPassword
(String rawPassword) protected boolean
matchesNonNull
(String rawPassword, String encodedPassword) protected boolean
upgradeEncodingNonNull
(String encodedPassword) Methods inherited from class org.springframework.security.crypto.password.AbstractValidatingPasswordEncoder
encode, matches, upgradeEncoding
-
Constructor Details
-
BCryptPasswordEncoder
public BCryptPasswordEncoder() -
BCryptPasswordEncoder
public BCryptPasswordEncoder(int strength) - Parameters:
strength
- the log rounds to use, between 4 and 31
-
BCryptPasswordEncoder
- 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,2yrandom
- the secure random instance to use
-
BCryptPasswordEncoder
- Parameters:
strength
- the log rounds to use, between 4 and 31random
- the secure random instance to use
-
BCryptPasswordEncoder
- Parameters:
version
- the version of bcrypt, can be 2a,2b,2ystrength
- 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,2ystrength
- the log rounds to use, between 4 and 31random
- the secure random instance to use
-
-
Method Details
-
encodeNonNullPassword
- Specified by:
encodeNonNullPassword
in classAbstractValidatingPasswordEncoder
-
matchesNonNull
- Specified by:
matchesNonNull
in classAbstractValidatingPasswordEncoder
-
upgradeEncodingNonNull
- Overrides:
upgradeEncodingNonNull
in classAbstractValidatingPasswordEncoder
-