Модуль Digest
module Digest: sig .. end
Дайджест сообщений.
Этот модуль предоставляет функции для вычисления «дайджестов», также известных как «хеши», строк или файлов произвольной длины. Поддерживаются алгоритмы хеширования BLAKE2 и MD5.
Основные функции
Функции в этом разделе используют хеш-функцию MD5 для создания 128-битных дайджестов (16 байт). MD5 не является криптографически стойкой. Поэтому эти функции не следует использовать в приложениях, где важна безопасность. Функции BLAKE2, приведённые ниже, являются криптографически стойкими.
type t = string
Тип дайджестов: строки длиной 16 байт.
val compare : t -> t -> int
Функция сравнения 16-байтовых дайджестов с той же спецификацией, что и у compare, и реализацией, общей с String.compare. Вместе с типом t эта функция compare позволяет передавать модуль Digest в качестве аргумента функторам Set.Make и Map.Make.
- Начиная с версии 4.00
val equal : t -> t -> bool
Функция проверки равенства 16-байтовых дайджестов.
- Начиная с версии 4.03
val string : string -> t
Возвращает дайджест заданной строки.
val bytes : bytes -> t
Возвращает дайджест заданной последовательности байтов.
- Начиная с версии 4.02
val substring : string -> int -> int -> t
Digest.substring s ofs len возвращает дайджест подстроки s, начинающейся с индекса ofs и содержащей len символов.
val subbytes : bytes -> int -> int -> t
Digest.subbytes s ofs len возвращает дайджест подпоследовательности s, начинающейся с индекса ofs и содержащей len байт.
- Начиная с версии 4.02
val channel : in_channel -> int -> t
Если len неотрицательно, Digest.channel ic len считывает len символов из канала ic и возвращает их дайджест либо вызывает исключение End_of_file, если конец файла достигнут до считывания len символов. Если len отрицательно, Digest.channel ic len считывает все символы из ic до достижения конца файла и возвращает их дайджест.
val file : string -> t
Возвращает дайджест файла с заданным именем.
val output : out_channel -> t -> unit
Записывает дайджест в заданный выходной канал.
val input : in_channel -> t
Считывает дайджест из заданного входного канала.
val to_hex : t -> string
Возвращает печатное шестнадцатеричное представление заданного дайджеста.
-
Вызывает исключение
Invalid_argument, если аргумент не содержит ровно 16 байт.
val of_hex : string -> t
Преобразует шестнадцатеричное представление обратно в соответствующий дайджест.
- Начиная с версии 5.2
-
Вызывает исключение
Invalid_argument, если аргумент не содержит ровно 32 шестнадцатеричных символа.
val from_hex : string -> t
Та же функция, что и Digest.of_hex.
- Начиная с версии 4.00
Общий интерфейс
module type S = sig .. end
Сигнатура хеш-функции, создающей дайджесты длиной hash_length из символьных строк, массивов байтов и файлов.
Специализированные хеш-функции
module BLAKE128: S
BLAKE128 — это хеш-функция BLAKE2b, создающая 128-битные (16-байтовые) дайджесты.
module BLAKE256: S
BLAKE256 — это хеш-функция BLAKE2b, создающая 256-битные (32-байтовые) дайджесты.
module BLAKE512: S
BLAKE512 — это хеш-функция BLAKE2b, создающая 512-битные (64-байтовые) дайджесты.
module MD5: S
MD5 — это хеш-функция MD5.
© 1995-2026 INRIA.
https://ocaml.org/manual/5.5/api/Digest.html