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

食譜無法運作?註解不清楚或已過時?

開啟議題貢獻此食譜