hbutils.encoding.hash

This module provides convenient wrapper functions for various cryptographic hash algorithms.

It offers easy-to-use interfaces for MD5, SHA1, SHA2 family (SHA224, SHA256, SHA384, SHA512), and SHA3 hash functions. All functions take binary data as input and return hexadecimal digest strings.

The module simplifies the usage of Python’s hashlib by providing a consistent interface across different hash algorithms.

Examples::
>>> from hbutils.encoding import md5, sha256
>>> md5(b'hello world')
'5eb63bbbe01eeed093cb22bb8f5acdc3'
>>> sha256(b'hello world')
'b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9'

md5

hbutils.encoding.hash.md5(binary: bytes) str[source]

Compute MD5 hash of binary data.

Parameters:

binary (bytes) – Binary data to be hashed.

Returns:

MD5 digest string in hexadecimal format.

Return type:

str

Examples::
>>> from hbutils.encoding import md5
>>> md5(b'')
'd41d8cd98f00b204e9800998ecf8427e'
>>> md5(b'this is a word')
'cdfc9527f76e296c76cdb331ac2d1d88'

sha1

hbutils.encoding.hash.sha1(binary: bytes) str[source]

Compute SHA1 hash of binary data.

Parameters:

binary (bytes) – Binary data to be hashed.

Returns:

SHA1 digest string in hexadecimal format.

Return type:

str

Examples::
>>> from hbutils.encoding import sha1
>>> sha1(b'')
'da39a3ee5e6b4b0d3255bfef95601890afd80709'
>>> sha1(b'this is a word')
'7bf417a6503e185ea6352525b96a4d6ef3b9609b'

sha224

hbutils.encoding.hash.sha224(binary: bytes) str[source]

Compute SHA224 hash of binary data.

Parameters:

binary (bytes) – Binary data to be hashed.

Returns:

SHA224 digest string in hexadecimal format.

Return type:

str

Examples::
>>> from hbutils.encoding import sha224
>>> sha224(b'')
'd14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f'
>>> sha224(b'this is a word')
'7b994bcffbc9a3689941e541a2e639c20e321b763b744c0d84f6899c'

sha256

hbutils.encoding.hash.sha256(binary: bytes) str[source]

Compute SHA256 hash of binary data.

Parameters:

binary (bytes) – Binary data to be hashed.

Returns:

SHA256 digest string in hexadecimal format.

Return type:

str

Examples::
>>> from hbutils.encoding import sha256
>>> sha256(b'')
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
>>> sha256(b'this is a word')
'91ccca153f5d3739af1f0d304d033f193b25208d44d371c1304877a6503471bf'

sha384

hbutils.encoding.hash.sha384(binary: bytes) str[source]

Compute SHA384 hash of binary data.

Parameters:

binary (bytes) – Binary data to be hashed.

Returns:

SHA384 digest string in hexadecimal format.

Return type:

str

Examples::
>>> from hbutils.encoding import sha384
>>> sha384(b'')
'38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b'
>>> sha384(b'this is a word')
'37ae885a635d78e9067fdfe297e2d50d70de3670e4066bd541ac259b3ecdffb39a4c7b97211cb3967eac2188bb4b95f6'

sha512

hbutils.encoding.hash.sha512(binary: bytes) str[source]

Compute SHA512 hash of binary data.

Parameters:

binary (bytes) – Binary data to be hashed.

Returns:

SHA512 digest string in hexadecimal format.

Return type:

str

Examples::
>>> from hbutils.encoding import sha512
>>> sha512(b'')
'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'
>>> sha512(b'this is a word')
'6e80a2fd5dcf382b443ddaa619833208a4f4ac9bbedb760d6c8aac26a12da8dc6e2f6bc809091915db2e2d19bb66682db89e46c646a8ea7a5c6da57bf1a42b5c'

sha3

hbutils.encoding.hash.sha3(binary: bytes, n: int = 256) str[source]

Compute SHA3 hash of binary data with configurable bit length.

Parameters:
  • binary (bytes) – Binary data to be hashed.

  • n (int) – Bit length of SHA3 hash. Valid values are 224, 256, 384, or 512. Default is 256.

Returns:

SHA3 digest string in hexadecimal format.

Return type:

str

Examples::
>>> from hbutils.encoding import sha3
>>> sha3(b'')
'a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a'
>>> sha3(b'this is a word')
'3e5a3507f625c8464fb282b451c8d82d78c3a232645e55c846d55551a7fe667c'
>>> sha3(b'this is a word', n=224)
'e0271d2734fc2c1a6dfcb6051bec6dc59e5f7fbec4b0d42ef1faee64'