我有一個將加密數據發送到Web服務的WinForms客戶端。 WinForms客戶端創建對稱RijndaelManaged會話密鑰,並且還具有「硬編碼的RSA非對稱公鑰」。交換對稱密鑰
我正在使用EncryptedXml類,這使得打包數據變得非常簡單。
Web服務具有「硬編碼」的私鑰和公鑰,並且可以成功解密SessionKey,然後使用它解密我發送的實際數據。
這是由EncryptedData類自動處理的。
我遇到的問題是,在Web服務結束時,當我想回復時,我似乎無法弄清楚如何獲取已發送的SessionKey。
在我對Web服務端進行任何解密之前,我可以看到加密的會話密鑰,但是在解密XML之後,它消失了(因此我的回覆沒有任何會話密鑰)。
任何想法如何我可以得到這個未加密的密鑰?
我們希望得到比「它消失」更多的信息。代碼片段?硬編碼RSA密鑰也不是很好的做法。爲什麼不從Windows密鑰庫中讀取證書並使用它們進行加密/解密? –
它幾乎是MSDN上代碼的逐字記錄:http://msdn.microsoft.com/en-us/library/ms229746.aspx在Decrypt()方法中,在調用DecryptDocument之後,我可以看到我的數據,但是我怎麼獲得SessionKey(在Encrypt()方法中使用),以便我可以回覆發件人? – Tim
你爲什麼不簡單地使用SSL? – CodesInChaos