回答

1

分離效率會高一點,但差別很小(當然這取決於文檔大小 - 對於100Mb文檔,差異會比使用小型XML塊更大)。

+0

我將不得不處理非常大的文件(在我的情況下,100MB文件是*小*)。你有沒有參考證實分離效率更高?從理論的角度來看,我並不完全理解,當簽名樹位於簽名樹旁時,與簽名樹下方的簽名相比,計算簽名的速度更快... – rds 2013-03-03 11:33:07

+1

@rds速度差異不是通過計算簽名值,但是通過應用轉換和呈現輸出文檔。如果您使用基於DOM的簽名者,它將加載整個文檔,然後在包裝或嵌入簽名的情況下再次撰寫。在簽名分離的情況下,只有一個小簽名塊會被寫入,這裏是分離簽名勝出的地方。另外,如果100Mb對於您的數據來說很小,那麼將其加載到DOM進行處理時會遇到嚴重問題。 – 2013-03-03 11:49:23

0

由於沒有編寫XMLdSig,請記住性能或文件大小可能會成爲問題;流式傳輸是不可能的。由於大數據需要簽名,這確實是一個問題,因爲DOM對象吃了很多內存,相信我。在這方面,封閉或封閉並不重要。

這是分離簽名閃耀的地方。簽名本身並不那麼大,並且要簽名的數據可以流式傳輸,因爲您只需要散列它。

+0

我還沒有開始,但我看到了一個[XML Signature Streaming Profile](http://www.w3.org/TR/2012/CR-xmldsig-xpath-20120124/),這聽起來與「* streaming不可能*」。另外,我不明白你的意思是「*簽名本身不是那麼大*」。無論其位置是什麼,都不能使用相同的算法計算簽名? – rds 2013-03-03 11:30:17

+0

@rds您提到的文檔與加載用於簽名或應用轉換的XML文檔無關 - 這兩個仍需要DOM。 – 2013-03-03 11:53:08