2012-08-06 66 views
1

這裏是我的問題:我想知道,如果客戶端已成功下載的blob,所以 有沒有什麼辦法讓斑點的檢驗?或者可能有一些更好的解決方案來比較blob和下載的文件,如果它們是相同的?校驗團塊(GAE)

+0

澄清:您想檢查用戶計算機上的某些blob(例如,在其下載文件夾中)是否與您在App Engine中存儲的blob的校驗和相匹配?什麼是blob(可執行文件,圖像,其他)的類型? – 2012-08-06 16:51:08

+0

是的,你是完全正確的,blob是.mp3 – user1049280 2012-08-07 07:31:10

回答

2

在幾乎所有情況下,TCP/IP的內置的校驗碼將運輸過程中保護網絡損壞您的數據。此外,音頻文件(以及其他媒體文件,如圖像)對於一些翻轉位是容錯的。 (這並不是說腐敗不會引起注意,但它的影響是微乎其微的。)

如果您有理由擔心惡意方故意腐敗(您可能不會),可能值得提供校驗。但是,讓用戶檢查它們仍然需要一些手動輸入,即使您儘可能簡單。

post提供計算使用JS文件的MD5哈希的一個例子。 MD5有許多已知的弱點,所以如果你試圖避免惡意腐敗,你可能想要使用更強大的東西(至少是SHA1)。這是another example using SHA1

這些解決方案的最大缺點是,由於瀏覽器的安全模型,用戶需要手動選擇文件,使你的代碼可以計算校驗和。

您還需要驗證您的JS(用戶正在執行以計算校驗和)未被修改,您在網站上比較的校驗和尚未修改然後才能將其與本地校驗和進行比較。使用SSL可以解決這些問題。對於精明的用戶,您可以在您的網站上發佈校驗和,並讓他們使用自己的工具進行驗證。

因此,要總結:

  • 你可能並不需要做的MP3進行校驗和驗證。
  • 有基於JS的解決方案,你可以使用,但它們不是特別方便用戶使用。
  • 誰在乎校驗大多數用戶可能知道如何計算他們自己,所以出版校驗是一個很好的平衡。
  • 最後,在您的網站上使用SSL!
+0

謝謝你,現在它適合我 – user1049280 2012-08-08 08:49:52