次の質問は、最初に思われるより複雑です。JSONオブジェクトを暗号化する方法
私は任意のJSONオブジェクトを持っているとします。その中には、他のネストされたJSONオブジェクトを含む任意の量のデータが含まれているものとします。私が望むのは、実際のJSONフォーマット自体に関係なく、JSONデータの暗号化ハッシュ/ダイジェストです(例えば、改行やJSONトークンの間隔の違いを無視するなど)。
JSONはさまざまなプラットフォームのさまざまな(デ)シリアライザによって生成/読み込まれるため、最後の部分が必要です。デシリアライズ時にデータを読み込むときに書式設定を完全に削除するJava用のJSONライブラリが少なくとも1つはわかっています。そのようにして、ハッシュを破ります。
上記の任意のデータ節は、特定の順序で既知のフィールドを取得してハッシングする前にそれらを連結することを妨げるため、事を複雑にします(Javaの非暗号化hashCode()メソッドの仕組みを大まかに考える)。
最後に、JSON文字列全体をハッシュ演算する際に無視する必要があるフィールドがあるため、(逆シリアル化の前に)バイトチャンクとしてハッシュするのは好ましくありません。
私はこの問題の良い解決策があるか分からないが、私は=任意のアプローチや感想をお待ちしており)
あなたの名前がどのように問題になっているか気づくことはできません。 –
あなたはXML DSigを見ましたか?彼らは同じ問題を抱え、非常に複雑な "標準化"仕様を持っています。 – mtraut
これは標準化されています。 JSON Web Signature(JWS)ドラフトRFCを参照してください。 http://tools.ietf.org/html/draft-ietf-jose-json-web-signature-17 – user239558