@param algorithmName the name of the hash algorithm to use. This is often null as the
{@link HashService} implementation is usually configured with an appropriate algorithm name, but this
can be non-null if the hash service's algorithm should be overridden with a specific one for the duration
of the request.
@param source the source to be hashed
@param salt any public salt which should be used when computing the hash
@param iterations the number of hash iterations to execute. Zero (0) indicates no iterations were specified
for the request, at which point the number of iterations is decided by the {@code HashService}
@throws NullPointerException if {@code source} is null or empty.
Creates a new SimpleHashRequest instance.
@param algorithmName the name of the hash algorithm to use. This is often null as the {@link HashService} implementation is usually configured with an appropriate algorithm name, but this can be non-null if the hash service's algorithm should be overridden with a specific one for the duration of the request.
@param source the source to be hashed @param salt any public salt which should be used when computing the hash @param iterations the number of hash iterations to execute. Zero (0) indicates no iterations were specified for the request, at which point the number of iterations is decided by the {@code HashService} @throws NullPointerException if {@code source} is null or empty.