位元組證據工作台 · 工具不是魔法
摘要是否一致,要先確認雙方雜湊的是同一串位元組。
Hash 處理的是位元組。Checksum 不一致時,先確認文字編碼、Unicode 正規化、換行序列與檔案內容完全相同,再檢查演算法及 hex/Base64 表示。檔案會先由瀏覽器完整讀入 ArrayBuffer,再轉交 Worker,並非分塊串流讀取。
輸入清單#BYTES-0514
文字 · UTF-8
字元先編碼成位元組
檔案 · 原始位元組
整份 ArrayBuffer 讀入後轉交本機 Worker
Café43 61 66 C3 A9
你好E4 BD A0 E5 A5 BD
LF0A
CRLF0D 0A
看起來相同的文字,可能採用不同 Unicode 正規化形式,或帶有看不見的結尾位元組。除了結果,也要記錄來源是 UTF-8 文字還是檔案原始內容。
兩種工具
一般摘要與 HMAC 回答不同問題。
INSTRUMENT 01
一般 HASH
訊息 → H(message)任何取得訊息的人都能重新計算。
只用於完整性比對
INSTRUMENT 02
帶金鑰的 HMAC
秘密金鑰 + 訊息 → HMAC持有同一把共享秘密金鑰的參與方才能重現。
完整性 + 共享密鑰認證
演算法狀態
輸出較長,不代表所有安全屬性都更完整。
SHA-256256 bit建議一般檔案完整性比對與內容定址
SHA-384384 bit建議配合特定協定或安全政策
SHA-512512 bit建議需要較寬 SHA-2 輸出的情境
SHA-1160 bitLEGACY僅供相容校驗;碰撞安全性已不足
MD5128 bitLEGACY僅供舊 checksum 相容;可遭碰撞攻擊
不一致排查
肉眼相同,不代表是同一份位元組證據。
換行
LF 0ACRLF 0D 0AUnicode
é · U+00E9e + ◌́ · U+0065 U+0301文字編碼
UTF-8UTF-16LE輸出表示
小寫 hex含 padding 的 Base64檔案處理
原始位元組文字模式轉換摘要
完整值截短前綴比對收據
正規化表示後,仍須比較完整摘要。
來源release.tar.zst · 原始位元組
演算法SHA-256
預期值64 個 hex 字元
實際值64 個 hex 字元
結果MATCH / MISMATCH
COMPLETE VALUE REQUIRED
MATCH 只代表本機位元組與你提供的預期值一致;預期值是否真的來自發布者,仍取決於取得管道及其驗證方式。