Skip to content
Andrew edited this page Nov 15, 2022 · 2 revisions

What is a SHA

This script provides functions to calculate SHA digest.

SHA takes an input and produces a 160-bit (20-byte) hash value known as a message digest – typically rendered as 40 hexadecimal digits.

How to use

MD5

crypt.sha.md5(message)

SHA-1

crypt.sha.sha1(message)

SHA-224

crypt.sha.sha224(message)

SHA-256

crypt.sha.sha256(message)

SHA-384

crypt.sha.sha384(message)

SHA-512

crypt.sha.sha512(message)

SHA-512/224

crypt.sha.sha512_224(message)

SHA-512/256

crypt.sha.sha512_256(message)

SHA3-224

crypt.sha.sha3_224(message)

SHA3-256

crypt.sha.sha3_256(message)

SHA3-384

crypt.sha.sha3_384(message)

SHA3-512

crypt.sha.sha3_512(message)

SHAKE128

crypt.sha.shake128(digest_size_in_bytes, message)

SHAKE256

crypt.sha.shake256(digest_size_in_bytes, message)

HMAC

(applicable to any hash function mentioned above except SHAKE)

crypt.sha.hmac(sha.any_hash_func, key, message)

BLAKE2b

crypt.sha.blake2b(message, key, salt, digest_size_in_bytes)

BLAKE2s

crypt.sha.blake2s(message, key, salt, digest_size_in_bytes)

BLAKE2bp

crypt.sha.blake2bp(message, key, salt, digest_size_in_bytes)

BLAKE2sp

crypt.sha.blake2sp(message, key, salt, digest_size_in_bytes)  -- BLAKE2sp is used in WinRAR and 7-Zip

BLAKE2Xb

crypt.sha.blake2xb(digest_size_in_bytes, message, key, salt)

BLAKE2Xs

crypt.sha.blake2xs(digest_size_in_bytes, message, key, salt)

BLAKE2b-160

crypt.sha.blake2b_160(message, key, salt)  -- BLAKE2b with digest_size_in_bytes = 20

BLAKE2b-256

crypt.sha.blake2b_256(message, key, salt)  -- BLAKE2b with digest_size_in_bytes = 32

BLAKE2b-384

crypt.sha.blake2b_384(message, key, salt)  -- BLAKE2b with digest_size_in_bytes = 48

BLAKE2b-512

crypt.sha.blake2b_512(message, key, salt)  -- BLAKE2b with digest_size_in_bytes = 64 (default size)

BLAKE2s-128

crypt.sha.blake2s_128(message, key, salt)  -- BLAKE2s with digest_size_in_bytes = 16

BLAKE2s-160

crypt.sha.blake2s_160(message, key, salt)  -- BLAKE2s with digest_size_in_bytes = 20

BLAKE2s-224

crypt.sha.blake2s_224(message, key, salt)  -- BLAKE2s with digest_size_in_bytes = 28

BLAKE2s-256

crypt.sha.blake2s_256(message, key, salt)  -- BLAKE2s with digest_size_in_bytes = 32 (default size)

BLAKE3

crypt.sha.blake3(message, key, digest_size_in_bytes)

BLAKE3_KDF

crypt.sha.blake3_derive_key(key_material, context_string, derived_key_size_in_bytes)