模块 Stdlib.Digest

module Digest: Digest

基本函数

本节中的函数使用 MD5 哈希函数生成 128 位摘要(16 字节)。MD5 不具备密码学安全性。因此,这些函数不应用于安全性敏感的应用。下面的 BLAKE2 函数具有密码学安全性。

type t = string 

摘要类型:16 字节字符串。

val compare : t -> t -> int

用于 16 字节摘要的比较函数,与 compare 的规范相同,其实现与 String.compare 共享。与类型 t 一样,此函数 compare 允许将模块 Digest 作为参数传递给函子 Set.MakeMap.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

返回给定摘要的可打印十六进制表示。

val of_hex : string -> t

将十六进制表示转换回相应的摘要。

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 哈希函数。