org.jasypt.util.password.rfc2307

## Class RFC2307SHAPasswordEncryptor

- Object
- - org.jasypt.util.password.rfc2307.RFC2307SHAPasswordEncryptor

- All Implemented Interfaces:
    PasswordEncryptor

      public final class RFC2307SHAPasswordEncryptor
      extends Object
      implements PasswordEncryptor

  Utility class for easily performing password digesting and checking according to {SHA}, a password encryption scheme defined in RFC2307 and commonly found in LDAP systems.

  This class internally holds a `StandardStringDigester` configured this way:

  - Algorithm: `SHA-1`.
  - Salt size: `0 bytes` (no salt).
  - Iterations: `1` (no hash iteration).
  - Prefix: `{SHA}`.

  This class is thread-safe

  Since:
    1.7
  Author:
    Daniel Fernández

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RFC2307SHAPasswordEncryptor()` Creates a new instance of `RFC2307SHAPasswordEncryptor`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `checkPassword(String plainPassword, String encryptedPassword)` Checks an unencrypted (plain) password against an encrypted one (a digest) to see if they match.
    `String` | `encryptPassword(String password)` Encrypts (digests) a password.
    `void` | `setStringOutputType(String stringOutputType)` Sets the the form in which String output will be encoded.

    - ### Methods inherited from class Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RFC2307SHAPasswordEncryptor

          public RFC2307SHAPasswordEncryptor()

      Creates a new instance of `RFC2307SHAPasswordEncryptor`

  - ### Method Detail

    - #### setStringOutputType

          public void setStringOutputType(String stringOutputType)

      Sets the the form in which String output will be encoded. Available encoding types are:

      - `base64` (default)
      - `hexadecimal`
      Parameters:
        `stringOutputType` - the string output type.

    - #### encryptPassword

          public String encryptPassword(String password)

      Encrypts (digests) a password.
      Specified by:
        `encryptPassword` in interface `PasswordEncryptor`
      Parameters:
        `password` - the password to be encrypted.
      Returns:
        the resulting digest.
      See Also:
        `StandardStringDigester.digest(String)`

    - #### checkPassword

          public boolean checkPassword(String plainPassword,
                                       String encryptedPassword)

      Checks an unencrypted (plain) password against an encrypted one (a digest) to see if they match.
      Specified by:
        `checkPassword` in interface `PasswordEncryptor`
      Parameters:
        `plainPassword` - the plain password to check.
        `encryptedPassword` - the digest against which to check the password.
      Returns:
        true if passwords match, false if not.
      See Also:
        `StandardStringDigester.matches(String, String)`

Copyright © 2019 The JASYPT team. All rights reserved.