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