OCaml library : Stdlib.Digest (original) (raw)
Module Stdlib.Digest
module Digest: [Digest](Digest.html)
Basic functions
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.
type ``t = string
The type of digests: 16-byte strings.
val compare : [t](Digest.html#TYPEt) -> [t](Digest.html#TYPEt) -> 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
val equal : [t](Digest.html#TYPEt) -> [t](Digest.html#TYPEt) -> bool
The equal function for 16-byte digests.
- Since 4.03
val string : string -> [t](Digest.html#TYPEt)
Return the digest of the given string.
val bytes : bytes -> [t](Digest.html#TYPEt)
Return the digest of the given byte sequence.
- Since 4.02
val substring : string -> int -> int -> [t](Digest.html#TYPEt)
Digest.substring s ofs len
returns the digest of the substring of s
starting at index ofs
and containing len
characters.
val subbytes : bytes -> int -> int -> [t](Digest.html#TYPEt)
Digest.subbytes s ofs len
returns the digest of the subsequence of s
starting at index ofs
and containing len
bytes.
- Since 4.02
val channel : [in_channel](Stdlib.html#TYPEin%5Fchannel) -> int -> [t](Digest.html#TYPEt)
If len
is nonnegative, Digest.channel ic len
reads len
characters from channel ic
and returns their digest, or raisesEnd_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.
val file : string -> [t](Digest.html#TYPEt)
Return the digest of the file whose name is given.
val output : [out_channel](Stdlib.html#TYPEout%5Fchannel) -> [t](Digest.html#TYPEt) -> unit
Write a digest on the given output channel.
val input : [in_channel](Stdlib.html#TYPEin%5Fchannel) -> [t](Digest.html#TYPEt)
Read a digest from the given input channel.
val to_hex : [t](Digest.html#TYPEt) -> string
Return the printable hexadecimal representation of the given digest.
- Raises
Invalid_argument
if the argument is not exactly 16 bytes.
val of_hex : string -> [t](Digest.html#TYPEt)
Convert a hexadecimal representation back into the corresponding digest.
- Since 5.2
- Raises
Invalid_argument
if the argument is not exactly 32 hexadecimal characters.
val from_hex : string -> [t](Digest.html#TYPEt)
- Since 4.00
Generic interface
The signature for a hash function that produces digests of lengthhash_length
from character strings, byte arrays, and files.
Specific hash functions
module BLAKE128: [S](Digest.S.html)
BLAKE128
is the BLAKE2b hash function producing 128-bit (16-byte) digests.
module BLAKE256: [S](Digest.S.html)
BLAKE256
is the BLAKE2b hash function producing 256-bit (32-byte) digests.
module BLAKE512: [S](Digest.S.html)
BLAKE512
is the BLAKE2b hash function producing 512-bit (64-byte) digests.
module MD5: [S](Digest.S.html)
MD5
is the MD5 hash function.