Skip to content

Functions

/

Database functions

Crypto

These functions can be used when hashing data, encrypting data, and for securely authenticating users into the database.

Function

Description

crypto::blake3()

Returns the blake3 hash of a value

crypto::joaat()

Returns the joaat hash of a value

crypto::md5()

Returns the md5 hash of a value

crypto::sha1()

Returns the sha1 hash of a value

crypto::sha256()

Returns the sha256 hash of a value

crypto::sha512()

Returns the sha512 hash of a value

crypto::argon2::compare()

Compares an argon2 hash to a password

crypto::argon2::generate()

Generates a new argon2 hashed password

crypto::bcrypt::compare()

Compares an bcrypt hash to a password

crypto::bcrypt::generate()

Generates a new bcrypt hashed password

crypto::pbkdf2::compare()

Compares an pbkdf2 hash to a password

crypto::pbkdf2::generate()

Generates a new pbkdf2 hashed password

crypto::scrypt::compare()

Compares an scrypt hash to a password

crypto::scrypt::generate()

Generates a new scrypt hashed password

The crypto::blake3 function returns the blake3 hash of the input value.

API DEFINITION
crypto::blake3(string) -> string

The following example shows this function, and its output:

crypto::blake3("tobie");
Output
'85052e9aab1b67b6622d94a08441b09fd5b7aca61ee360416d70de5da67d86ca'


Available since: v3.0.0

The crypto::joaat function returns the joaat hash of the input value.

API DEFINITION
crypto::joaat(string) -> number

The following example shows this function, and its output:

crypto::joaat("tobie");
Output
2129482046


The crypto::md5 function returns the md5 hash of the input value.

API DEFINITION
crypto::md5(string) -> string

The following example shows this function, and its output:

crypto::md5("tobie");
Output
"4768b3fc7ac751e03a614e2349abf3bf"


The crypto::sha1 function returns the sha1 hash of the input value.

API DEFINITION
crypto::sha1(string) -> string

The following example shows this function, and its output:

crypto::sha1("tobie");
Output
"c6be709a1b6429472e0c5745b411f1693c4717be"


The crypto::sha256 function returns the sha256 hash of the input value.

API DEFINITION
crypto::sha256(string) -> string

The following example shows this function, and its output:

crypto::sha256("tobie");
Output
"33fe1859daba927ea5674813adc1cf34b9e2795f2b7e91602fae19c0d0c493af"


The crypto::sha512 function returns the sha512 hash of the input value.

API DEFINITION
crypto::sha512(string) -> string

The following example shows this function, and its output:

crypto::sha512("tobie");

"39f0160c946c4c53702112d6ef3eea7957ea8e1c78787a482a89f8b0a8860a20ecd543432e4a187d9fdcd1c415cf61008e51a7e8bf2f22ac77e458789c9cdccc"


The crypto::argon2::compare function compares a hashed-and-salted argon2 password value with an unhashed password value.

API DEFINITION
crypto::argon2::compare(string, $against: string) -> bool

The following example shows this function, and its output:

LET $hash = "$argon2id$v=19$m=4096,t=3,p=1$pbZ6yJ2rPJKk4pyEMVwslQ$jHzpsiB+3S/H+kwFXEcr10vmOiDkBkydVCSMfRxV7CA";
LET $pass = "this is a strong password";
RETURN crypto::argon2::compare($hash, $pass);
Output
true


The crypto::argon2::generate function hashes and salts a password using the argon2 hashing algorithm.

Important

At this time, there is no way to customise the parameters for this function. This applies to: memory, iterations and parallelism.

API DEFINITION
crypto::argon2::generate(string) -> string

The following example shows this function, and its output:

crypto::argon2::generate("this is a strong password");

"$argon2id$v=19$m=4096,t=3,p=1$pbZ6yJ2rPJKk4pyEMVwslQ$jHzpsiB+3S/H+kwFXEcr10vmOiDkBkydVCSMfRxV7CA"


The crypto::bcrypt::compare function compares a hashed-and-salted bcrypt password value with an unhashed password value.

API DEFINITION
crypto::bcrypt::compare(string, $against: string) -> bool

The following example shows this function, and its output:

LET $hash = "$2b$12$OD7hrr1Hycyk8NUwOekYY.cogCICpUnwNvDZ9NiC1qCPHzpVAQ9BO";
LET $pass = "this is a strong password";
RETURN crypto::bcrypt::compare($hash, $pass);

true


The crypto::bcrypt::generate function hashes and salts a password using the bcrypt hashing algorithm.

Important

At this time, there is no way to customise the work factor for bcrypt.

API DEFINITION
crypto::bcrypt::generate(string) -> string

The following example shows this function, and its output:

crypto::bcrypt::generate("this is a strong password");

"$2b$12$OD7hrr1Hycyk8NUwOekYY.cogCICpUnwNvDZ9NiC1qCPHzpVAQ9BO"


The crypto::pbkdf2::compare function compares a hashed-and-salted pbkdf2 password value with an unhashed password value.

API DEFINITION
crypto::pbkdf2::compare(string, $against: string) -> bool

The following example shows this function, and its output:

LET $hash = "$pbkdf2-sha256$i=10000,l=32$DBURRPJODKEt0IId1Lqe+w$Ve8Z00mibHDSKLbyKTceEBBcDpGoK0AEUl7QzDTIec4";
LET $pass = "this is a strong password";
RETURN crypto::pbkdf2::compare($hash, $pass);


true


The crypto::pbkdf2::generate function hashes and salts a password using the pbkdf2 hashing algorithm.

Important

At this time, there is no way to customise the number of iterations for pbkdf2.

API DEFINITION
crypto::pbkdf2::generate(string) -> string

The following example shows this function, and its output:

crypto::pbkdf2::generate("this is a strong password");

"$pbkdf2-sha256$i=10000,l=32$DBURRPJODKEt0IId1Lqe+w$Ve8Z00mibHDSKLbyKTceEB"


The crypto::scrypt::compare function compares a hashed-and-salted scrypt password value with an unhashed password value.

API DEFINITION
crypto::scrypt::compare(string, $against: string) -> bool

The following example shows this function, and its output:

LET $hash = "$scrypt$ln=15,r=8,p=1$8gl7bipl0FELTy46YJOBrw$eRcS1qR22GI8VHo58WOXn9JyfDivGo5yTJFvpDyivuw";
LET $pass = "this is a strong password";
RETURN crypto::scrypt::compare($hash, $pass);


true


The crypto::scrypt::generate function hashes and salts a password using the scrypt hashing algorithm.

Important

At this time, there is no way to customise the parameters for this function. This applies to: cost parameter, block size and parallelism.

API DEFINITION
crypto::scrypt::generate(string) -> string

The following example shows this function, and its output:

crypto::scrypt::generate("this is a strong password");

"$scrypt$ln=15,r=8,p=1$8gl7bipl0FELTy46YJOBrw$eRcS1qR22GI8VHo58WOXn9JyfDivGo5yTJFvpDyivuw"



Was this page helpful?