我可以創建服務器和客戶端的非對稱密鑰,然後導出它們並嘗試交換它們。我的問題,我一直無法找到解決方案是,我想要將服務器的公鑰導入到客戶端程序。這是作爲一個字節[],但我需要能夠使用它作爲一個RSAParameters能夠加密數據去服務器。如何將字節[]轉換爲RSAParameters類型?如何在C#中導入公鑰?
private void secureButton_Click(object sender, EventArgs e)
{
clientRSA = new RSACryptoServiceProvider();
byte[] clientPublicKey = clientRSA.ExportCspBlob(false);
stm.Write(clientPublicKey, 0, clientPublicKey.Length);
stm.Read(serverPublicKey, 0, serverPublicKey.Length);
}
我知道,這是不是這樣,由於易受中間人的「安全」的方式,但我反對硬學校期限跑起來,這是我需要得到一個磚牆在我可以繼續前進之前。
任何幫助,將不勝感激。提前致謝。
我從來沒有做過blob,但我通常使用'RSACryptoServiceProvider.ToXMLString()'導出到XML中。然後,我將該XML放入應用程序的資源中,然後在將來使用'RSACryptoServiceProvider.FromXMLString()'將這些參數加載回去。您沒有安全的公用密鑰。它是公開的。 – Pete 2013-03-26 20:29:59
謝謝皮特,這工作很好,讓我在磚牆上。第一次搞亂了RSACryptoServiceProvider,所以感謝幫助。 – Chris 2013-03-27 21:58:09