bioutils.digest module

class bioutils.digest.Digest[source]

Bases: bytes

Represents a sliceable binary digest, with support for encoding and decoding using printable characters.

Supported encoding and decodings are::
  • base64

  • base64url

  • hex (aka base16)

The Base64 specification (https://tools.ietf.org/html/rfc4648#page-7) defines base64 and a URL-safe variant called base64url.

“Stringified” Digest objects use URL-safe base64 encodings.

>>> import hashlib
>>> b = hashlib.sha512().digest()
>>> len(b)
64
>>> d = Digest(b)           # creation
>>> str(d)                  # returns base64url
'z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg_SpIdNs6c5H0NE8XYXysP-DGNKHfuwvY7kxvUdBeoGlODJ6-SfaPg=='
>>> d24 = d[:24]            # slice binary digest at first 24 bytes
>>> str(d24)
'z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXc'

# encoding

>>> d.as_base64url()
'z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg_SpIdNs6c5H0NE8XYXysP-DGNKHfuwvY7kxvUdBeoGlODJ6-SfaPg=='
>>> d.as_hex()
'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'

# decoding

>>> d == Digest.from_base64(d.as_base64())
True
>>> d == Digest.from_base64url(d.as_base64url())
True
>>> d == Digest.from_hex(d.as_hex())
True
as_base64()[source]

Returns Digest as a base64-encoded string.

Returns:

base64 encoding of Digest.

Return type:

str

as_base64url()[source]

Returns Digest as URL-safe, base64-encoded string.

Returns:

URL-safe base64 encoding of Digest.

Return type:

str

as_base64us()

Returns Digest as URL-safe, base64-encoded string.

Returns:

URL-safe base64 encoding of Digest.

Return type:

str

as_hex()[source]

Returns Digest as hex string.

Returns:

A hex-encoding of Digest.

Return type:

str

static from_base64(s)[source]

Returns Digest object initialized from a base64-encoded string.

Parameters:

s (str) – A base64-encoded digest string.

Returns:

A Digest object initialized from s.

Return type:

Digest

static from_base64url(s)[source]

Returns Digest object initialized from a base64url string.

Parameters:

s (str) – A base64url-encoded digest string.

Returns:

A Digest object initialized from s.

Return type:

Digest

static from_base64us(s)

Returns Digest object initialized from a base64url string.

Parameters:

s (str) – A base64url-encoded digest string.

Returns:

A Digest object initialized from s.

Return type:

Digest

static from_hex(s)[source]

returns Digest object initialized from hex string.

Parameters:

s (str) – A hex-encoded digest string.

Returns:

A Digest object initialized from s.

Return type:

Digest