Package io.vertx.ext.auth.hashing

## Interface HashingStrategy

-     public interface HashingStrategy

  Hashing Strategy manager.

  This class will load system provided hashing strategies and algorithms.

  Author:
    Paulo Lopes

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `HashingAlgorithm` | `get​(String id)` | Get an algorithm interface by its Id
    `String` | `hash​(String id, Map<String,​String> params, String salt, String password)` | Hashes a password.
    `static HashingStrategy` | `load()` | Factory method to load the algorithms from the system
    `HashingStrategy` | `put​(String id, HashingAlgorithm algorithm)` | Put or replace an algorithm into the list of system loaded algorithms.
    `boolean` | `verify​(String hash, String password)` | Time constant password check.

- - ### Method Detail

    - #### load

          static HashingStrategy load()

      Factory method to load the algorithms from the system
      Returns:
        a Hashing Strategy capable of hashing using the available algorithms

    - #### hash

          String hash​(String id,
                      Map<String,​String> params,
                      String salt,
                      String password)

      Hashes a password.
      Parameters:
        `id` - the algorithm id
        `params` - the algorithm specific parameters
        `salt` - the given salt
        `password` - the given password
      Returns:
        the hashed string

    - #### verify

          boolean verify​(String hash,
                         String password)

      Time constant password check. Regardless of the check, this algorithm executes the same number of checks regardless of the correctly number of characters
      Parameters:
        `hash` - the hash to verify
        `password` - the password to test against
      Returns:
        boolean

    - #### get

          HashingAlgorithm get​(String id)

      Get an algorithm interface by its Id
      Parameters:
        `id` - the algorithm id
      Returns:
        the algorithm

    - #### put

          HashingStrategy put​(String id,
                              HashingAlgorithm algorithm)

      Put or replace an algorithm into the list of system loaded algorithms.
      Parameters:
        `id` - the algorithm id
        `algorithm` - the implementation
      Returns:
        self