觀點 · 資訊分享
Azure Blob SDK 支援 CRC64-NVME 端對端驗證:上傳下載的檔案有沒有走樣,一個位元組也不放過
Azure Blob Storage 在 6/30 宣布,用戶端資料完整性保護正式推出:.NET、C++、JavaScript 的最新 SDK 已整合 CRC64-NVME 檢查碼,可以驗證檔案從應用程式到 Azure 實體儲存,寫入與讀取都沒有被改動。
- 發布
- 2026-07-01
- 篇幅
- 約 4 分鐘 · 1,953 字
- 結構
- 7 節 + 3 題常見問題
- 標籤

一句話看懂:Azure Blob Storage 的 .NET、C++、JavaScript SDK 現在內建 CRC64-NVME 檢查碼,可以驗證檔案從你的程式到 Azure 實體儲存,寫入與讀取都沒有走樣;這項用戶端資料完整性保護在 6 月 30 日正式推出。

先用白話講:資料完整性檢查是什麼?
想像你要寄一件貴重的瓷器:寄件前拍照、量尺寸,在箱子上貼一張獨一無二的封條;收件人收到後,核對封條與尺寸,就能確定途中沒有被掉包或摔壞。
電腦世界的「封條」就是檢查碼(checksum):資料寫入前算出一組「指紋」,讀取後再算一次,兩組一樣,資料就是完好的;不一樣,就代表有地方出錯,需要重傳。
發生什麼事
Azure 在 6 月 30 日宣布,Blob Storage 的用戶端資料完整性保護正式推出(GA):
- Blob Storage 一直支援資料完整性驗證:最早是隨 HTTP 標準提供的 MD5,後來在 2019 年加入 CRC64-NVME
- 現在 CRC64-NVME 已整合進最新的 Azure Blob SDK,涵蓋 .NET、C++、JavaScript
- 這等於把保護延伸到用戶端應用程式:用 CRC64-NVME 檢查碼,驗證寫入與讀取 Blob 的資料,從應用程式層到 Azure 底層實體儲存,都逐位元組完整
- 起步方式:升級到最新的 .NET、C++ 或 JavaScript SDK
為什麼值得在意
| 情境 | 檢查碼能幫上的忙 |
|---|---|
| 上傳大檔案 | 確認送到 Azure 的內容與本機一模一樣 |
| 下載備份或影片 | 確認拿回來的檔案沒有在途中損毀 |
| 稽核或醫療、財務資料 | 提供「資料沒被改動」的可驗證依據 |
上表是依檢查碼的一般用途整理,不是公告原文列出的案例。
給開發者的技術細節
以下取自 Microsoft Learn 文件:
- .NET 的
StorageChecksumAlgorithm列舉有四個值:Auto(建議,由程式庫選擇演算法,不同版本可能選不同的)、None(不計算也不要求檢查碼)、MD5、StorageCrc64(Azure Storage 的 64 位元 CRC) - REST API 層:結構化本文(Structured Body)格式,是 Blob、File、DFS API 用來高效計算檢查碼的二進位格式;請求本文會被編碼成「標頭、一個或多個分段、結尾」,結尾只支援 crc64 檢查碼。使用支援的 SDK,請求會自動編碼成這種格式;直接呼叫 REST API 的人則要自己處理,且這個格式是選用的
- 目前這個格式只有第 1 版,只支援 CRC64
- 公告沒有說明預設是否自動啟用、效能影響,以及各 SDK 的最低版本;上線前請看各語言 SDK 的發行說明與文件
我的看法
我常幫客戶做的網站與後台,檔案上傳、報表下載是很常見的功能,而「檔案壞掉」這類問題最麻煩的是:很少發生,但一發生就很難重現,也很難證明是哪一段出的錯。有了端對端的檢查碼,至少能把問題範圍縮小到「上傳前」「雲端內」「下載後」三段,不用再猜。
不過我也不會因此就把它當成萬靈丹:檢查碼只能告訴你資料「有沒有走樣」,不能保證內容本身正確,也不能取代備份。建議把它跟版本控制與備份一起用,並且先在測試環境確認自己用的 SDK 版本真的有開啟。
名詞小辭典
- 檢查碼(Checksum):根據資料算出的「指紋」,用來確認資料有沒有被改動或損毀。
- CRC64-NVME:一種 64 位元的循環冗餘檢查(CRC)演算法,Azure Blob Storage 用它做資料完整性驗證。
- Blob Storage:Azure 存放大量檔案(圖片、影片、備份)的物件儲存服務。
- GA(Generally Available):功能正式推出,可用於正式環境。
資料來源
常見問題
資料完整性檢查是什麼?
就像寄包裹時貼的封條或條碼:寄件時算出一組「指紋」(檢查碼),收件時再算一次,兩組對得上,就代表途中沒有被改動或損毀。Blob Storage 以前就支援 MD5,也支援 CRC64-NVME;這次是把後者放進用戶端 SDK。
我需要改程式嗎?
公告只說要升級到最新的 SDK。.NET 的程式庫有 StorageChecksumAlgorithm 列舉,值有 Auto、None、MD5、StorageCrc64,文件建議用 Auto 讓程式庫自己選,但不同版本可能選不同演算法。要明確使用 CRC64 的話,請以官方文件的最新做法為準。
沒有用 SDK、直接呼叫 REST API 怎麼辦?
官方有一份「結構化本文格式」規格,說明 Blob、File、DFS API 用來高效計算檢查碼的二進位格式;支援的 SDK 會自動把請求編碼成這種格式。目前只有第 1 版,只支援 CRC64 檢查碼,使用上是選用的。
接著讀
全部觀點 →Azure Blob Storage 的 SFTP 改用 Entra ID 登入正式推出:不必再管一堆本機帳號與金鑰Azure 公告 Blob Storage SFTP 的 Microsoft Entra ID 登入功能正式推出(GA),所有區域可用:員工與外部夥伴可用公司帳號連 SFTP,直接套用 MFA 與條件式存取,不用再建立本機 SFTP 使用者。閱讀 →Azure Backup 單檔還原擴大支援 Premium SSD v2 與 Ultra 磁碟:只撈要的檔案,不用整台 VM 還原Azure Backup 在 10 月 23 日正式讓使用 Premium SSD v2 與 Ultra 磁碟的虛擬機器也能做單檔還原。誤刪一個檔案或資料夾時,可以直接從備份裡撈出來,不必把整台 VM 或整顆磁碟都還原。閱讀 →Azure 擴展集「可用區自動平衡」正式上線:VM 擠在同一區,系統會一台一台幫你搬平Azure 虛擬機器擴展集的可用區自動平衡正式 GA:發現 VM 偏向某個可用區時,會先在 VM 最少的區建新機、確認健康後才刪掉多的那台,一次只搬一台。閱讀 →