org.jasypt.salt

## Class RandomSaltGenerator

- Object
- - org.jasypt.salt.RandomSaltGenerator

- All Implemented Interfaces:
    SaltGenerator

      public class RandomSaltGenerator
      extends Object
      implements SaltGenerator

  This implementation of `SaltGenerator` holds a secure random generator which can be used for generating random salts for encryption or digesting.

  The algorithm used for random number generation can be configured at instantiation time. If not, the default algorithm will be used.

  This class is thread-safe.

  Since:
    1.2
  Author:
    Daniel Fernández

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `DEFAULT_SECURE_RANDOM_ALGORITHM` The default algorithm to be used for secure random number generation: set to SHA1PRNG.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RandomSaltGenerator()` Creates a new instance of `RandomSaltGenerator` using the default secure random number generation algorithm.
    `RandomSaltGenerator(String secureRandomAlgorithm)` Creates a new instance of `RandomSaltGenerator` specifying a secure random number generation algorithm.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `generateSalt(int lengthBytes)` Generate a random salt of the specified length in bytes.
    `boolean` | `includePlainSaltInEncryptionResults()` This salt generator needs the salt to be included unencrypted in encryption results, because of its being random.

    - ### Methods inherited from class Object

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

- - ### Field Detail

    - #### DEFAULT_SECURE_RANDOM_ALGORITHM

          public static final String DEFAULT_SECURE_RANDOM_ALGORITHM

      The default algorithm to be used for secure random number generation: set to SHA1PRNG.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### RandomSaltGenerator

          public RandomSaltGenerator()

      Creates a new instance of `RandomSaltGenerator` using the default secure random number generation algorithm.

    - #### RandomSaltGenerator

          public RandomSaltGenerator(String secureRandomAlgorithm)

      Creates a new instance of `RandomSaltGenerator` specifying a secure random number generation algorithm.
      Since:
        1.5

  - ### Method Detail

    - #### generateSalt

          public byte[] generateSalt(int lengthBytes)

      Generate a random salt of the specified length in bytes.
      Specified by:
        `generateSalt` in interface `SaltGenerator`
      Parameters:
        `lengthBytes` - length in bytes.
      Returns:
        the generated salt.

    - #### includePlainSaltInEncryptionResults

          public boolean includePlainSaltInEncryptionResults()

      This salt generator needs the salt to be included unencrypted in encryption results, because of its being random. This method will always return true.
      Specified by:
        `includePlainSaltInEncryptionResults` in interface `SaltGenerator`
      Returns:
        true

Copyright © 2019 The JASYPT team. All rights reserved.