繁体   English   中英

检查JSON文件完整性

[英]Checking JSON file integrity

  • 我正在开发基于服务器的游戏,并且正在通过JSON将游戏数据从服务器发送到客户端。
  • 为了最大程度地减少带宽使用,我将游戏数据JSON缓存在客户端计算机上,这样他们就不必每次都从服务器下载JSON。
  • 我需要知道客户端上缓存的JSON是否与服务器上的JSON相同(当我们在服务器上进行更改或用户访问并调整了客户端上的缓存时,它可能会变得不同)。

因此,基本上,我需要某种哈希技术来获取JSON字符串唯一的密钥,我可以检查该密钥以查看客户端上缓存的JSON是否与服务器上存储的JSON相同。 服务器将首先将该哈希发送给客户端,并且仅当该哈希与从客户端缓存生成的哈希不同时,客户端才会再次从服务器请求整个JSON。

  • 我不在乎数据丢失,因为哈希永远不会再转换回字符串。
  • 我不关心由于JSON中的键顺序不同而导致的哈希差异,因为我确保从服务器获取JSON时它们始终处于正确的顺序。
  • 哈希值不应特定于环境。 无论环境,32位或64位和字节序如何,相同的算法都应生成相同的哈希。

如果您要查找简单的哈希,为什么不只使用MD5哈希呢? https://msdn.microsoft.com/zh-cn/library/system.security.cryptography.md5%28v=vs.110%29.aspx易于实现和使用的基本哈希。

如果您希望使用JS在客户端上进行MD5哈希处理,则可能需要查看https://github.com/blueimp/JavaScript-MD5 (未经我测试,但我听过好消息:)

  1. 正如Brad所述,.NET中的任何内置哈希技术都可以为您完成这项工作。
  2. 另一个选择是使用基于UTC的时间戳。 (LastModified)服务器可以发送该值,并且如果客户端具有相同的值,则很好用。 谁更新文件,谁都可以更新时间戳。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM