Class BCryptPasswordEncoder
java.lang.Object
io.gravitee.am.service.authentication.crypto.password.bcrypt.BCryptPasswordEncoder
- All Implemented Interfaces:
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.
- Author:
- Dave Syer
-
Constructor Summary
ConstructorsConstructorDescriptionBCryptPasswordEncoder(int strength) BCryptPasswordEncoder(int strength, SecureRandom random) -
Method Summary
Modifier and TypeMethodDescriptionencode(CharSequence rawPassword) Encode the raw password.booleanmatches(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, waitMethods inherited from interface io.gravitee.am.service.authentication.crypto.password.PasswordEncoder
encode, matches, matches
-
Constructor Details
-
BCryptPasswordEncoder
public BCryptPasswordEncoder() -
BCryptPasswordEncoder
public BCryptPasswordEncoder(int strength) - Parameters:
strength- the log rounds to use, between 4 and 31
-
BCryptPasswordEncoder
- Parameters:
strength- the log rounds to use, between 4 and 31random- the secure random instance to use
-
-
Method Details
-
encode
Description copied from interface:PasswordEncoderEncode 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:
encodein interfacePasswordEncoder- Parameters:
rawPassword- the raw password to encode
-
matches
Description copied from interface:PasswordEncoderVerify 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:
matchesin interfacePasswordEncoder- 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
-