使用 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