Модуль 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.
- Since 4.00
val equal : t -> t -> bool
Функция равенства для 16-байтовых хеш-сумм.
- Since 4.03
val string : string -> t
Возвращает хеш-сумму заданной строки.
val bytes : bytes -> t
Возвращает хеш-сумму заданной последовательности байтов.
- Since 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 байта.
- Since 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
Возвращает удобочитаемое шестнадцатеричное представление заданной хеш-суммы.
-
Raises
Invalid_argumentесли аргумент не равен ровно 16 байтам.
val of_hex : string -> t
Преобразует шестнадцатеричное представление обратно в соответствующую хеш-сумму.
- Since 5.2
-
Raises
Invalid_argumentесли аргумент не содержит ровно 32 шестнадцатеричных символа.
val from_hex : string -> t
Такая же функция, как Digest.of_hex.
- Since 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-2024 INRIA.
https://ocaml.org/manual/5.2/api/Digest.html