This library provides a lightweight implementation for computing SHA
secure hashes. A general secure hash interface is provided by
library(crypto), part of the
- See also
- - library(md5), library(hash_stream) and library(crypto).
- sha_hash(+Data, -Hash, +Options) is det
- Hash is the SHA hash of Data, The conversion is controlled
- One of
- If Data is a sequence of character codes, this must be
translated into a sequence of bytes, because that is what
the hashing requires. The default encoding is
other meaningful value is
octet, claiming that Data contains
|Data||- is either an atom, string or code-list|
|Hash||- is a packed string|
- sha_new_ctx(-NewContext, +Options) is det
- NewContext is unified with the empty SHA computation context
(which includes the Options.) It could later be passed to
sha_hash_ctx/4. For Options, see sha_hash/3.
|NewContext||- is an opaque pure Prolog term that is
subject to garbage collection.|
- sha_hash_ctx(+OldContext, +Data, -NewContext, -Hash) is det
- Hash is the SHA hash of Data. NewContext is the new SHA
computation context, while OldContext is the old. OldContext
may be produced by a prior invocation of either sha_new_ctx/3 or
This predicate allows a SHA function to be computed in chunks,
which may be important while working with Metalink (RFC 5854),
BitTorrent or similar technologies, or simply with big files.
- hmac_sha(+Key, +Data, -Hash, +Options) is det
- For Options, see sha_hash/3.
- file_sha1(+File, -SHA1:atom) is det
- True when SHA1 is the SHA1 hash for the content of File. Options
is passed to open/4 and typically used to control whether binary
or text encoding must be used. The output is compatible to the
sha1sum program found in many systems.
- hash_atom(+HashCodes, -HexAtom) is det
- Convert a list of bytes (integers 0..255) into the usual
hexadecimal notation. E.g.
?- sha_hash('SWI-Prolog', Hash, ),
Hash = [61, 128, 252, 38, 121, 69, 229, 85, 199|...],
Hex = '3d80fc267945e555c730403bd0ab0716e2a68c68'.