logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Digest - Message digest.

Documentation

       Module Digest
        : sigend

       Message digest.

       This  module provides functions to compute 'digests', also known as 'hashes', of arbitrary-length strings
       or files.  The supported hashing algorithms are BLAKE2 and MD5.

   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                                         Digest(3o)

Module

       Module   Digest

Name

       Digest - Message digest.

See Also