用discuz做的手机网站,自己做游戏app的网站,如何使用万网主机建设网站,php 抓取 wordpress 文字内容我最近写了一个简单的库#xff0c;可预测地对json进行哈希处理 。 该实用程序基于出色的Jackson Json解析库构建 问题 我需要从相当大的基于json的内容生成的哈希值#xff0c;以便稍后确定内容是否发生了更改。 将json视为字符串不是格式化的选项#xff0c;键改组可能会… 我最近写了一个简单的库可预测地对json进行哈希处理 。 该实用程序基于出色的Jackson Json解析库构建 问题 我需要从相当大的基于json的内容生成的哈希值以便稍后确定内容是否发生了更改。 将json视为字符串不是格式化的选项键改组可能会使结果偏斜。 解 该实用程序很简单–遍历json的Jackson JsonNode表示形式 1.对于每个对象节点它对键进行排序然后遍历元素并从所有子节点计算聚合哈希 2.对于每个数组节点它遍历到元素并聚合哈希 3.对于每个终端节点它获取键和值并从中生成SHA-256哈希 这样将为整个树生成哈希。 考虑一个用以下方法创建的Jackson Json节点 ObjectNode jsonNode JsonNodeFactory .instance .objectNode() .put( key1 , value1 ); jsonNode.set( key2 , JsonNodeFactory.instance.objectNode() .put( child-key2 , child-value2 ) .put( child-key1 , child-value1 ) .put( child-key3 , 123 .23f)); jsonNode.set( key3 , JsonNodeFactory.instance.arrayNode() .add( arr-value1 ) .add( arr-value2 )); String calculatedHash sha256Hex( sha256Hex( key1 ) sha256Hex( value1 ) sha256Hex( key2 ) sha256Hex( sha256Hex( child-key1 ) sha256Hex( child-value1 ) sha256Hex( child-key2 ) sha256Hex( child-value2 ) sha256Hex( child-key3 ) sha256Hex( 123.23 )) sha256Hex( key3 ) sha256Hex( sha256Hex( arr-value1 ) sha256Hex( arr-value2 )) ); 此处json具有3个键“ key1”“ key2”“ key3”。 “ key1”具有原始文本字段“ key2”是对象节点“ key3”是字符串数组。 CalculationHash显示了如何为整个树计算聚合哈希该实用程序遵循相同的过程来聚合哈希。 如果您对此感兴趣可以在bintray中找到该库– https://bintray.com/bijukunjummen/repo/json-hash并托管在github上的此处 – https://github.com/bijukunjummen/json-杂凑 翻译自: https://www.javacodegeeks.com/2019/11/hash-a-json.html