2013-07-06 56 views
0

我需要使用Web服務傳遞文件(我可以控制Web服務)。爲了滿足安全要求,我需要確保傳遞的文件沒有被修改或損壞。我打算像下面這樣做。使用校驗和驗證接收到的文件

  1. 轉換我的文件byte[]
  2. 計算哈希,

    System.Security.Cryptography.MD5.Create().ComputeHash(stream);

  3. 傳遞文件

當我傳遞文件(字節數組)網絡服務,正在傳遞我的散列值一個很好的做法?

還是我需要按照其他一些過程來檢查文件?處理這個問題的最好方法是什麼?

+0

只需在帖子標題中指定算法的校驗和即可。 – Romoku

+0

@ Romoku-抱歉,我不清楚你說的是什麼。您能否提供一些示例鏈接?我正在使用Web服務來傳輸文件。 –

回答

0

如果是安全需求,發送MD5和文件可能不是你想要做的:任何可以攔截文件的人也可以重寫校驗和。

我使用CRC代替它們:它們對文件(或流)的內容中的小變化更敏感,並且它們更緊湊,更易於比較。 .NET似乎沒有CRC實現,但我在網上發現了一個很好的工具,它似乎很好用,Calculating CRC-32 in C# and .NET

您的客戶端是否具有獨立計算校驗和的能力?

+0

是的。客戶有這種能力。如果我將收到的文件校驗和從Web服務返回給客戶端,以便客戶端可以驗證該文件。這個過程是否很好實施? –

+0

取決於您的安全需求。如果你的目標是100%驗證文件的邏輯完整性,你提議的是好的。如果要確保它沒有被篡改(更安全相關),我會建議構建一些更精細的東西。 – Curt