以下問題比首先看起來更復雜。如何加密散列JSON對象?
假設我有一個任意的JSON對象,可以包含任何數量的數據,包括其他嵌套的JSON對象。我想要的是JSON數據的加密散列/摘要,而不考慮實際的JSON格式本身(例如:忽略JSON令牌之間的換行符和間距差異)。
最後一部分是一個需求,因爲JSON將由許多不同平臺上的各種(反)序列化器生成/讀取。我知道至少有一個用於Java的JSON庫,它可以在反序列化過程中讀取數據時完全刪除格式。因此它會打破散列。
上面的任意數據子句也使事情複雜化,因爲它阻止我以給定順序接收已知字段並在hasing之前將它們連接起來(大致思考Java的非加密hashCode()方法是如何工作的)。
最後,將整個JSON字符串散列爲一個字節塊(反序列化之前)也是不可取的,因爲在計算散列時應該忽略JSON中的字段。
我不知道有很好的解決了這個問題,但是我歡迎任何方式或想法=)
我不禁注意到你的名字對於這個問題有多重要。 –
你有沒有看過XML DSig?他們有同樣的問題,並有一個相當複雜的「規範化」規範。 – mtraut
這是標準化的。請參閱JSON Web簽名(JWS)RFC草案。 http://tools.ietf.org/html/draft-ietf-jose-json-web-signature-17 – user239558