Page cover

πŸ”‘Password Vault

Securely hash, store and verify passwords.

KPasswordVault Class Overview

  • Security Parameters Uses PBKDF2 with the PBKDF2WithHmacSHA512 algorithm, a key length of 512 bits, a securely generated 32-byte salt, and an optional pepper value.

  • Hash Iteration Count If no iteration count is specified, a random value between 500,000 and 1,000,000 is used.

  • Password Verification Provides a method to validate a plaintext password by comparing it against the stored hash.

Example

public static final String SET_PASSWORD   = "SecretPassword";
public static final String TEST_PASSWORD  = "WrongPassword";
	
public static void main(String[] args) {

   KPasswordVault vault = new KPasswordVault(SET_PASSWORD.toCharArray());

   System.out.println("Hashed Password:       " + K.toHex(vault.getPasswordHash()));
   System.out.println("Used Salt:             " + K.toHex(vault.getSalt()));
   System.out.println("Used Iteration Count:  " + vault.getIterations());
   System.out.println("Hashing Elapsed Time:  " + vault.getHashTimeMs() + " ms");

   System.out.println("Validate 1st Password: " + vault.isPasswordValid(SET_PASSWORD.toCharArray()));
   System.out.println("Validate 2st Password: " + vault.isPasswordValid(TEST_PASSWORD.toCharArray()));
}

Output

Last updated