code: @Nonnull
    public PasswordHash createUserPasswordHash (@Nonnull @Nonempty final String sAlgorithmName,
                                                @Nullable final IPasswordSalt aSalt,
                                                @Nonnull final String sPlainTextPassword)
    {
      ValueEnforcer.notNull (sPlainTextPassword, "PlainTextPassword");
  
      final IPasswordHashCreator aPHC = getPasswordHashCreatorOfAlgorithm (sAlgorithmName);
      if (aPHC == null)
        throw new IllegalArgumentException ("No password hash creator for algorithm '" +
                                            sAlgorithmName +
                                            "' registered!");
      final String sPasswordHash = aPHC.createPasswordHash (aSalt, sPlainTextPassword);
      return new PasswordHash (sAlgorithmName, aSalt, sPasswordHash);
    }
docs: Create the password hash from the passed plain text password, using the
  default password hash creator.
  
  @param sAlgorithmName
  The password hash creator algorithm name to query. May neither be
  <code>null</code> nor empty.
  @param aSalt
  Optional salt to be used. This parameter is only <code>null</code>
  for backwards compatibility reasons.
  @param sPlainTextPassword
  Plain text password. May not be <code>null</code>.
  @return The password hash. Never <code>null</code>.
  @see #getDefaultPasswordHashCreator()