SecureHash

object SecureHash

Implements functionality to create and validate password hashes using PBKDF2

class Object
trait Matchable
class Any

Value members

Concrete methods

def createHash(password: String, iterations: Int, dkLength: Int, cryptoAlgo: String, saltLength: Int): String

Creates a hashed password using PBKDF2

Creates a hashed password using PBKDF2

this function output a string in the modified MCF format :

p0$params$salt$key

  • p0 : version 0 of the format

  • params: 8 digit hexadecimal representation of the number of iterations concatenated with the algo name

  • salt : Base64 encoded salt

  • key : Base64 encoded derived key

Example :

p0$00004e20HmacSHA256$mOCtN/Scjry0uIALe4bCCrL9eL8aWEA/$hDxtqCnBF1MS5qIOxHeDAZ23QEmqdL7796I0pVJ2yvQ

Value parameters:
cryptoAlgo

HMAC+SHA512 is the default as HMAC+SHA1 is now considered weak

dkLength

derived-key length, default to 32

iterations

the number of encryption iterations, default to 120000

password

the password to hash

saltLength

length of the salt, default to 24

def validatePassword(password: String, hashedPassword: String): Boolean

Validate a password against a password hash

Validate a password against a password hash

Value parameters:
hashedPassword

the password hash. This should be in the same format as generated by SecureHash.createHash

password

the password to validate

Returns:

true is the password is valid