sha.pl -- SHA secure hashes
This library provides a lightweight implementation for computing SHA
secure hashes. A general secure hash interface is provided by
library(crypto), part of the
- 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
utf8. The other meaningful value is
octet, claiming that Data contains raw bytes.
- 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.
- 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
sha1sumprogram 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_atom(Hash, Hex). Hash = [61, 128, 252, 38, 121, 69, 229, 85, 199|...], Hex = '3d80fc267945e555c730403bd0ab0716e2a68c68'.