org.jasypt.iv

## Class RandomIvGenerator

- Object
- - org.jasypt.iv.RandomIvGenerator

- All Implemented Interfaces:
    IvGenerator

      public class RandomIvGenerator
      extends Object
      implements IvGenerator

  This implementation of `IvGenerator` holds a secure random generator which can be used for generating random initialization vectors (IV) for encryption.

  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.9.3
  Author:
    Hoki Torres

- - ### 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
    `RandomIvGenerator()` Creates a new instance of `RandomIvGenerator` using the default secure random number generation algorithm.
    `RandomIvGenerator(String secureRandomAlgorithm)` Creates a new instance of `RandomIvGenerator` specifying a secure random number generation algorithm.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `generateIv(int lengthBytes)` Generate a random IV of the specified length in bytes.
    `boolean` | `includePlainIvInEncryptionResults()` This IV generator needs the IV 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

    - #### RandomIvGenerator

          public RandomIvGenerator()

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

    - #### RandomIvGenerator

          public RandomIvGenerator(String secureRandomAlgorithm)

      Creates a new instance of `RandomIvGenerator` specifying a secure random number generation algorithm.

  - ### Method Detail

    - #### generateIv

          public byte[] generateIv(int lengthBytes)

      Generate a random IV of the specified length in bytes.
      Specified by:
        `generateIv` in interface `IvGenerator`
      Parameters:
        `lengthBytes` - length in bytes.
      Returns:
        the generated IV.

    - #### includePlainIvInEncryptionResults

          public boolean includePlainIvInEncryptionResults()

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

Copyright © 2019 The JASYPT team. All rights reserved.