Class Argon2PasswordEncoder

java.lang.Object
org.springframework.security.crypto.password.AbstractValidatingPasswordEncoder
org.springframework.security.crypto.argon2.Argon2PasswordEncoder
All Implemented Interfaces:
PasswordEncoder

public class Argon2PasswordEncoder extends AbstractValidatingPasswordEncoder

Implementation of PasswordEncoder that uses the Argon2 hashing function. Clients can optionally supply the length of the salt to use, the length of the generated hash, a cpu cost parameter, a memory cost parameter and a parallelization parameter.

Note:

The currently implementation uses Bouncy castle which does not exploit parallelism/optimizations that password crackers will, so there is an unnecessary asymmetry between attacker and defender.

Since:
5.3
  • Constructor Details

    • Argon2PasswordEncoder

      public Argon2PasswordEncoder(int saltLength, int hashLength, int parallelism, int memory, int iterations)
      Constructs an Argon2 password encoder with the provided parameters.
      Parameters:
      saltLength - the salt length (in bytes)
      hashLength - the hash length (in bytes)
      parallelism - the parallelism
      memory - the memory cost
      iterations - the number of iterations
  • Method Details