SecureHash

io.github.nremond.SecureHash$
object SecureHash

Implements functionality to create and validate password hashes using PBKDF2

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Concise view

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

Attributes

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 210000

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

Attributes

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