org.jasypt.salt

## Interface SaltGenerator

- All Known Subinterfaces:
    FixedSaltGenerator
  All Known Implementing Classes:
    ByteArrayFixedSaltGenerator, FixedByteArraySaltGenerator, FixedStringSaltGenerator, RandomSaltGenerator, StringFixedSaltGenerator, ZeroSaltGenerator

      public interface SaltGenerator

  Common interface for all salt generators which can be applied in digest or encryption operations.

  Every implementation of this interface must be thread-safe.

  Since:
    1.2
  Author:
    Daniel Fernández

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `generateSalt(int lengthBytes)` This method will be called for requesting the generation of a new salt of the specified length.
    `boolean` | `includePlainSaltInEncryptionResults()` Determines if the digests and encrypted messages created with a specific salt generator will include (prepended) the unencrypted salt itself, so that it can be used for matching and decryption operations.

- - ### Method Detail

    - #### generateSalt

          byte[] generateSalt(int lengthBytes)

      This method will be called for requesting the generation of a new salt of the specified length.

      Parameters:
        `lengthBytes` - the requested length for the salt.
      Returns:
        the generated salt.

    - #### includePlainSaltInEncryptionResults

          boolean includePlainSaltInEncryptionResults()

      Determines if the digests and encrypted messages created with a specific salt generator will include (prepended) the unencrypted salt itself, so that it can be used for matching and decryption operations.

      Generally, including the salt unencrypted in encryption results will be mandatory for randomly generated salts, or for those generated in a non-predictable manner. Otherwise, digest matching and decryption operations will always fail. For fixed salts, inclusion will be optional (and in fact undesirable if we want to hide the salt value).

      Returns:
        whether the plain (unencrypted) salt has to be included in encryption results or not.

Copyright © 2019 The JASYPT team. All rights reserved.