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 ssl
package.
- sha_hash(+Data, -Hash, +Options) is det
- Hash is the SHA hash of Data, The conversion is controlled
by Options:
- algorithm(+Algorithm)
- One of
sha1
(default),sha224
,sha256
,sha384
orsha512
- encoding(+Encoding)
- 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 isoctet
, 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
sha_hash_ctx/4 itself.
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_atom(Hash, Hex). Hash = [61, 128, 252, 38, 121, 69, 229, 85, 199|...], Hex = '3d80fc267945e555c730403bd0ab0716e2a68c68'.