下面的问题比最初看起来要复杂得多。
假设我有一个任意 JSON 对象,它可能包含任意数量的数据,包括其他嵌套的 JSON 对象。我想要的是 JSON 数据的加密哈希/摘要,而不考虑实际的 JSON 格式本身(例如:忽略 JSON 令牌之间的换行符和间距差异)。
最后一部分是一个要求,因为 JSON 将由许多不同平台上的各种(反)序列化器生成/读取。我知道至少有一个用于 Java 的 JSON 库可以在反序列化期间读取数据时完全删除格式。因此,它会破坏哈希。
上面的任意数据子句也使事情变得复杂,因为它阻止我以给定的顺序获取已知字段并在拥有之前将它们连接起来(粗略想想 Java 的非加密 hashCode() 方法是如何工作的)。
最后,将整个 JSON 字符串散列为一个字节块(在反序列化之前)也是不可取的,因为在计算散列时应该忽略 JSON 中的某些字段。
我不确定这个问题是否有很好的解决方案,但我欢迎任何方法或想法 =)