Package org.jasypt.iv

Class 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 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 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 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 java.lang.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