module Digest: Digest
本节中的函数使用 MD5 哈希函数生成 128 位摘要(16 字节)。MD5 不具备密码学安全性。因此,这些函数不应用于安全性敏感的应用。下面的 BLAKE2 函数具有密码学安全性。
typet =
string
摘要类型:16 字节字符串。
val compare : t -> t -> int
用于 16 字节摘要的比较函数,与 compare
的规范相同,其实现与 String.compare
共享。与类型 t
一样,此函数 compare
允许将模块 Digest
作为参数传递给函子 Set.Make
和 Map.Make
。
val equal : t -> t -> bool
用于 16 字节摘要的相等函数。
val string : string -> t
返回给定字符串的摘要。
val bytes : bytes -> t
返回给定字节序列的摘要。
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
个字节。
val channel : in_channel -> int -> t
如果 len
非负,Digest.channel ic len
从通道 ic
中读取 len
个字符并返回它们的摘要,或者在读取 len
个字符之前遇到文件结尾时引发 End_of_file
。如果 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
将十六进制表示转换回相应的摘要。
Invalid_argument
,如果参数不是正好 32 个十六进制字符。val from_hex : string -> t
与 Digest.of_hex
相同的函数。
module type S =sig
..end
用于哈希函数的签名,该函数从字符字符串、字节数组和文件中生成长度为 hash_length
的摘要。
module BLAKE128:S
BLAKE128
是生成 128 位(16 字节)摘要的 BLAKE2b 哈希函数。
module BLAKE256:S
BLAKE256
是生成 256 位(32 字节)摘要的 BLAKE2b 哈希函数。
module BLAKE512:S
BLAKE512
是生成 512 位(64 字节)摘要的 BLAKE2b 哈希函数。
module MD5:S
MD5
是 MD5 哈希函数。