uhashlib
– hashing algorithm¶
This module implements binary data hashing algorithms. Currently, it implements SHA1 and SHA256 algorithms only. These two algorithms are more than enough for today’s web applications.
Constructors¶
-
class
uhashlib.
sha1
([data[, block_size]])¶ Create a sha1 hasher object and optionally feed
data
ordata and block_size
into it.
-
class
uhashlib.
sha256
([data[, block_size]])¶ Create a sha256 hasher object and optionally feed
data
ordata and block_size
into it.
CPython extension
Due to hardware implementation details of the WiPy, data must be buffered before being
digested, which would make it impossible to calculate the hash of big blocks of data that
do not fit in RAM. In this case, since most likely the total size of the data is known
in advance, the size can be passed to the constructor and hence the HASH hardware engine
of the WiPy can be properly initialized without needing buffering. If block_size
is
to be given, an initial chunk of data
must be passed as well. When using this extension,
care must be taken to make sure that the length of all intermediate chunks (including the
initial one) is a multiple of 4 bytes. The last chunk may be of any length.
Example:
hash = uhashlib.sha1('abcd1234', 1001) # length of the initial piece is multiple of 4 bytes
hash.update('1234') # also multiple of 4 bytes
...
hash.update('12345') # last chunk may be of any length
hash.digest()
Methods¶
-
hash.
update
(data)¶ Feed more binary data into hash.
-
hash.
digest
()¶ Return hash for all data passed through hash, as a bytes object. After this method is called, more data cannot be fed into hash any longer.
SHA1 hashes are 20-byte long. SHA256 hashes are 32-byte long.
-
hash.
hexdigest
()¶ This method is NOT implemented. Use
ubinascii.hexlify(hash.digest())
to achieve a similar effect.