module Digest: sig .. end
MD5 message digest.
This module provides functions to compute 128-bit 'digests' of arbitrary-length strings or files. The algorithm used is MD5.
The MD5 hash function is not cryptographically secure. Hence, this module should not be used for security-sensitive applications. More recent, stronger cryptographic primitives should be used instead.
type t = string;
The type of digests: 16-character strings.
let compare: (t, t) => int;
The comparison function for 16-character digest, with the same
specification as compare
and the implementation
shared with String.compare
. Along with the type t
, this
function compare
allows the module Digest
to be passed as
argument to the functors Set.Make
and Map.Make
.
let equal: (t, t) => bool;
The equal function for 16-character digest.
let string: string => t;
Return the digest of the given string.
let bytes: bytes => t;
Return the digest of the given byte sequence.
let substring: (string, int, int) => t;
Digest.substring s ofs len
returns the digest of the substring
of s
starting at index ofs
and containing len
characters.
let subbytes: (bytes, int, int) => t;
Digest.subbytes s ofs len
returns the digest of the subsequence
of s
starting at index ofs
and containing len
bytes.
let channel: (in_channel, int) => t;
If len
is nonnegative, Digest.channel ic len
reads len
characters from channel ic
and returns their digest, or raises
End_of_file
if end-of-file is reached before len
characters
are read. If len
is negative, Digest.channel ic len
reads
all characters from ic
until end-of-file is reached and return
their digest.
let file: string => t;
Return the digest of the file whose name is given.
let output: (out_channel, t) => unit;
Write a digest on the given output channel.
let input: in_channel => t;
Read a digest from the given input channel.
let to_hex: t => string;
Return the printable hexadecimal representation of the given digest.
Invalid_argument
if the argument is not exactly 16 bytes.let from_hex: string => t;
Convert a hexadecimal representation back into the corresponding digest.
Invalid_argument
if the argument is not exactly 32 hexadecimal
characters.