atg.security
Class SaltedMD5PasswordHasher

java.lang.Object
  extended by atg.security.PasswordHasher2Adapter
      extended by atg.security.SaltedMD5PasswordHasher
All Implemented Interfaces:
PasswordHasher, PasswordHasher2, java.io.Serializable

public class SaltedMD5PasswordHasher
extends PasswordHasher2Adapter

An implementation of a password hasher using the MD5 digest algorithm with the user login being used as a salt.

See Also:
Serialized Form

Field Summary
static java.lang.String CLASS_VERSION
           
 
Constructor Summary
SaltedMD5PasswordHasher()
          Construct a new SaltedMD5PasswordHasher with a randomized initial state.
SaltedMD5PasswordHasher(java.lang.Long pInitialHashState)
          Construct a new SaltedMD5PasswordHasher with the given initial state.
 
Method Summary
 boolean checkPassword(java.lang.String pLogin, java.lang.String pLoginPassword, java.lang.String pEncryptedPassword, java.lang.Object pHashKey)
          Returns true if the login password matches the encrypted password.
 java.lang.String encryptPassword(java.lang.String pLogin, java.lang.String pPassword)
          Encrypts a password suitably for long-term storage.
 PasswordHasher getLoginPasswordHasher()
          Returns a password hasher instance useful for performing a login.
 java.lang.Object getPasswordHashKey()
          Returns the hash key (if any) that was used for hashing the password for login.
 java.lang.String hashPasswordForLogin(java.lang.String pLogin, java.lang.String pPassword)
          Performs the appropriate hashing function for a login process.
 
Methods inherited from class atg.security.PasswordHasher2Adapter
checkPassword, encryptPassword, hashPasswordForLogin
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_VERSION

public static java.lang.String CLASS_VERSION
Constructor Detail

SaltedMD5PasswordHasher

public SaltedMD5PasswordHasher()
Construct a new SaltedMD5PasswordHasher with a randomized initial state.


SaltedMD5PasswordHasher

public SaltedMD5PasswordHasher(java.lang.Long pInitialHashState)
Construct a new SaltedMD5PasswordHasher with the given initial state.

Method Detail

getPasswordHashKey

public java.lang.Object getPasswordHashKey()
Returns the hash key (if any) that was used for hashing the password for login. This must be passed to checkPassword() to verify the validity of the hash.


getLoginPasswordHasher

public PasswordHasher getLoginPasswordHasher()
Returns a password hasher instance useful for performing a login. This instance may have a unique password hash key so that each login attempt is hashed differently.


encryptPassword

public java.lang.String encryptPassword(java.lang.String pLogin,
                                        java.lang.String pPassword)
Encrypts a password suitably for long-term storage.


checkPassword

public boolean checkPassword(java.lang.String pLogin,
                             java.lang.String pLoginPassword,
                             java.lang.String pEncryptedPassword,
                             java.lang.Object pHashKey)
Returns true if the login password matches the encrypted password.


hashPasswordForLogin

public java.lang.String hashPasswordForLogin(java.lang.String pLogin,
                                             java.lang.String pPassword)
Performs the appropriate hashing function for a login process. This value will later be passed to checkPassword().