使用 cryptokit 计算文件的 SHA-256 哈希值

任务

密码学 / 计算文件的 SHA-256 哈希值

使用的 Opam 包

  • cryptokit 测试版本:1.18 — 使用的库:cryptokit

代码

sha256sum 计算给定文件的 SHA-256 哈希值,并以十六进制形式打印。

let sha256sum filename =

我们选择 SHA-256 作为哈希函数

  let hash = Cryptokit.Hash.sha256 () in

我们以二进制模式打开给定文件(无换行符转换),并将 Cryptokit.hash_channel hash 传递给文件内容应用 SHA-256 哈希函数。

  let digest =
    In_channel.with_open_bin filename
      (Cryptokit.hash_channel hash)
  in

我们将哈希值(32 字节)转换为十六进制(64 个十六进制数字)

  let hex_digest =
    Cryptokit.transform_string
      (Cryptokit.Hexa.encode ()) digest
  in

我们打印十六进制哈希值和文件名

  Printf.printf "%s  %s\n" hex_digest filename

此程序的入口点在命令行上将每个文件名作为参数传递给 sha256sum

let _ =
  for i = 1 to Array.length Sys.argv - 1 do
    sha256sum Sys.argv.(i)
  done

食谱不起作用?注释不清楚或已过时?

提交问题为该食谱贡献代码