我正在使用密鑰對來簽署我的 XML(使用 SignedXml)并且我將公鑰作為嵌入式資源嵌入到我的應用程序中。在這里我如何創(chuàng)建密鑰對sn -k Warehouse.snksn -p Warehouse.snk WarehousePublic.snk當我試圖閱讀WarehousePublic.snk我得到一個異常錯誤版本的提供者。這是我的代碼:using (Stream stream = assembly.GetManifestResourceStream("WareApp.Resources.WarehousePublic.snk")){ byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider()) { rsa.ImportCspBlob(bytes); //the exception occurred here ... ... ... }}有沒有辦法僅從公鑰創(chuàng)建RSACryptoServiceProvider?我也試過使用 X509Certificate2X509Certificate2 cert = new X509Certificate2(bytes); //I got exception hereRSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert2.PublicKey.Key;但我得到異常無法找到請求的對象。任何的想法?
2 回答

慕標琳琳
TA貢獻1830條經(jīng)驗 獲得超9個贊
我認為SN
用于生成簽名證書(RSACryptoServiceProvider
至少使用)是不受支持的。我想這可以解釋錯誤。在 Windows 中,您要查找的是.PFX
文件(即帶密鑰的證書)和.CER
文件(不帶私鑰的證書)。
SN(MSDN 鏈接)不提供安全性,僅用于標識。您可以使用 IIS 或makecert.exe
生成一個自簽名證書,該證書應該與您嘗試執(zhí)行的操作(.PFX
即已導入 Windows 證書存儲的文件和/或證書)配合使用。然后,您可以從中提取.CER
文件并將其用于您的項目。
- 2 回答
- 0 關(guān)注
- 269 瀏覽
添加回答
舉報
0/150
提交
取消