blob校验和(GAME)

时间:2012-08-06 13:17:06

标签: google-app-engine checksum blobstore

这是我的问题:我想知道客户端是否成功下载了blob,所以 有没有办法得到blob的校验和?或者可能有更好的解决方案来比较blob和下载的文件,如果它们是相同的?

1 个答案:

答案 0 :(得分:2)

在几乎所有情况下,TCP / IP的内置校验和将保护您的数据在传输过程中免受网络损坏。此外,音频文件(以及其他媒体文件,如图像)对几个翻转位具有容错能力。 (这并不是说腐败不会引人注意,但它的影响会很小。)

如果您有理由担心来自恶意方的故意损坏(您可能不这样做),则可能值得提供校验和。但是,让用户检查它们仍然需要一些手动输入,即使你尽可能简单。

这个post提供了使用JS计算文件的MD5哈希的示例。 MD5有许多已知的弱点,因此如果您试图避免恶意破坏,您可能希望使用更强大的东西(至少SHA1)。这是another example using SHA1

这些解决方案的最大缺点是,由于浏览器安全模型,用户需要手动选择文件,以便您的代码可以计算校验和。

您还需要验证您的JS(用户正在执行以计算校验和)尚未被修改,您在网站上比较的校验和没有在与本地校验和进行比较之前,我们已经进行了修改。使用SSL可以帮助解决这些问题。对于精明的用户,您只需在您的网站上发布校验和,然后让他们使用自己的工具进行验证。

所以,总结一下:

  • 您可能不需要对MP3执行校验和验证。
  • 您可以使用基于JS的解决方案,但它们并不是特别方便用户使用。
  • 大多数关心校验和的用户可能都知道如何计算校验和,因此发布校验和是一个很好的折衷方案。
  • 最后,在您的网站上使用SSL!