Module Digest
: (moduleStdlib__Digest)Basicfunctions
The functions in this section use the MD5 hash function to produce 128-bit digests (16 bytes). MD5 is
not cryptographically secure. Hence, these functions should not be used for security-sensitive
applications. The BLAKE2 functions below are cryptographically secure.
typet = string
The type of digests: 16-byte strings.
valcompare : t->t->int
The comparison function for 16-byte digests, 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 .
Since 4.00
valequal : t->t->bool
The equal function for 16-byte digests.
Since 4.03
valstring : string->t
Return the digest of the given string.
valbytes : bytes->t
Return the digest of the given byte sequence.
Since 4.02
valsubstring : string->int->int->tDigest.substringsofslen returns the digest of the substring of s starting at index ofs and containing
len characters.
valsubbytes : bytes->int->int->tDigest.subbytessofslen returns the digest of the subsequence of s starting at index ofs and containing
len bytes.
Since 4.02
valchannel : in_channel->int->t
If len is nonnegative, Digest.channeliclen 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.channeliclen reads all characters from ic until end-of-file is reached and return
their digest.
valfile : string->t
Return the digest of the file whose name is given.
valoutput : out_channel->t->unit
Write a digest on the given output channel.
valinput : in_channel->t
Read a digest from the given input channel.
valto_hex : t->string
Return the printable hexadecimal representation of the given digest.
RaisesInvalid_argument if the argument is not exactly 16 bytes.
valof_hex : string->t
Convert a hexadecimal representation back into the corresponding digest.
Since 5.2
RaisesInvalid_argument if the argument is not exactly 32 hexadecimal characters.
valfrom_hex : string->t
Same function as Digest.of_hex .
Since 4.00
GenericinterfacemoduletypeS=sigend
The signature for a hash function that produces digests of length hash_length from character strings,
byte arrays, and files.
Since 5.2
SpecifichashfunctionsmoduleBLAKE128:SBLAKE128 is the BLAKE2b hash function producing 128-bit (16-byte) digests. It is cryptographically
secure. However, the small size of the digests enables brute-force attacks in 2{^64} attempts.
Since 5.2
moduleBLAKE256:SBLAKE256 is the BLAKE2b hash function producing 256-bit (32-byte) digests. It is cryptographically
secure, and the digests are large enough to thwart brute-force attacks.
Since 5.2
moduleBLAKE512:SBLAKE512 is the BLAKE2b hash function producing 512-bit (64-byte) digests. It is cryptographically
secure, and the digests are large enough to thwart brute-force attacks.
Since 5.2
moduleMD5:SMD5 is the MD5 hash function. It produces 128-bit (16-byte) digests and is not cryptographically secure
at all. It should be used only for compatibility with earlier designs that mandate the use of MD5.
Since 5.2
OCamldoc 2025-06-12 Stdlib.Digest(3o)