Package org.dspace.eperson
Class PasswordHash
java.lang.Object
org.dspace.eperson.PasswordHash
For handling digested secrets (such as passwords).
Use
PasswordHash(String, byte[], byte[]) to package and manipulate
secrets that have already been hashed, and PasswordHash(String) for
plaintext secrets. Compare a plaintext candidate to a hashed secret with
matches(String).- Author:
- mwood
-
Constructor Summary
ConstructorsConstructorDescriptionPasswordHash(String password) Construct a hash structure from a cleartext password using the configured digest algorithm.PasswordHash(String algorithm, byte[] salt, byte[] hash) Construct a hash structure from existing data, just for passing around.PasswordHash(String algorithm, String salt, String hash) Convenience: likePasswordHash(String, byte[], byte[])but with hexadecimal-encodedStrings. -
Method Summary
-
Constructor Details
-
PasswordHash
Construct a hash structure from existing data, just for passing around.- Parameters:
algorithm- the digest algorithm used in producinghash. If empty, set to null. Other methods will treat this as unsalted MD5. If you want salted multi-round MD5, specify "MD5".salt- the salt hashed with the secret, or null.hash- the hashed secret.
-
PasswordHash
public PasswordHash(String algorithm, String salt, String hash) throws org.apache.commons.codec.DecoderException Convenience: likePasswordHash(String, byte[], byte[])but with hexadecimal-encodedStrings.- Parameters:
algorithm- the digest algorithm used in producinghash. If empty, set to null. Other methods will treat this as unsalted MD5. If you want salted multi-round MD5, specify "MD5".salt- hexadecimal digits encoding the bytes of the salt, or null.hash- hexadecimal digits encoding the bytes of the hash.- Throws:
org.apache.commons.codec.DecoderException- if salt or hash is not proper hexadecimal.
-
PasswordHash
Construct a hash structure from a cleartext password using the configured digest algorithm.- Parameters:
password- the secret to be hashed.
-
-
Method Details
-
matches
Is this the string whose hash I hold?- Parameters:
secret- string to be hashed and compared to this hash.- Returns:
- true if secret hashes to the value held by this instance.
-
getHash
public byte[] getHash()Get the hash.- Returns:
- the value of hash
-
getHashString
Get the hash, as a String.- Returns:
- hash encoded as hexadecimal digits, or null if none.
-
getSalt
public byte[] getSalt()Get the salt.- Returns:
- the value of salt
-
getSaltString
Get the salt, as a String.- Returns:
- salt encoded as hexadecimal digits, or null if none.
-
getAlgorithm
Get the value of algorithm- Returns:
- the value of algorithm
-
getDefaultAlgorithm
The digest algorithm used if none is configured.- Returns:
- name of the default digest.
-